Skip to main content

Open ideas have been reviewed by our Customer Success team and are open for commenting and voting.

4449 Ideas

vlroyrenn
Enthusiast
vlroyrennEnthusiast

FeatureWriter: Allow insert ignoring conflicts/"Optimistic upsert" in databasesOpen

I work with time series data a lot, and to keep some slack with regards to “race conditions” across my own flows and other upstream jobs, I tend to use rather generous time windows and “full rerun at the end of the day” configurations to ensure I don’t leave any time gaps in the data destination. That means a lot of the features being inserted at the end will have already been inserted by a previous run and will raise a conflict error if there’s some sort of primary key constraint (or create duplicate entries if these constraints are not enforced).This sort of scenario is what UPSERT is for, but UPSERT causes existing rows to be updated by design. The problem is that several databases, such as Postgres and Snowflake don’t handle large amounts of rows being updated frequently very well, since the “updated row” is actually just a duplicate of the old row with its fields updated, while the “replaced row” is just hidden and actually deleted later by a separate process.Given I know any rows already present in the DB would be identical to the ones I’m inserting, I would much rather skip inserting any conflicting rows instead of causing unneeded churn by “updating” them with the same data. Standard SQL handles this with MERGE INTO … WHEN NOT MATCHED THEN INSERT, but there are also non-standard ways like Postgres’ INSERT INTO … ON CONFLICT DO NOTHING. The only workaround I have at this time is inserting all my features into a temporary table and using an SQLExecutor to write that data to its final destination (something not helped by not being able to use actual temporary tables in FME). Being able to set the FeatureWriter to write new features and ignore conflicts from the get go would be a lot more conveinient for me.Related question/community post:  

abnan0001
Supporter
abnan0001Supporter

AI - Objection DetectionArchived

Hi FME InnovatorsI was wondering do we have any ideas/thoughts in future to implement/release any FME transformers and tools in AI Era, Object Detection is evolving alot and Instead of using External API , FME Owned transformer and Labelling.The Era of AI is evolving, I have kept few notes of Object detection for which i was exploring towards it and I was thinking of FME will have its own API , tools and methods in labelling(Training a model within FME) rather than depending on external Api connectors.What is Object Detection?Object Detection is a method in computer vision that detects and identifies objects in an image or video. While image classification predicts a single label for an entire image, object detection finds several objects in a single image, giving each of them a bounding box and a class label.Object detection takes care of two main functions:Localisation Localization - Where is the object? Classification - What is the object? Traditional Machine Learning for Object DetectionBefore the emergence of deep learning, the traditional approach to object detection was handcrafted features and classical ML algorithms. Traditional object detection techniques require you to do manual feature extraction and suffer from problems with too much variation, such as lighting changes, scale changes, and background changes.      Haar Cascades Introduced by Viola and Jones (2001). Utilised for initial face detection (e.g. OpenCV’s face detector). Based on Haar-like features and a cascade of classifiers. Histogram of Oriented Gradients (HOG) + SVM Detect objects by utilising gradient orientations. Popularised by Dalal and Triggs for pedestrian detection. More compact and robust than Haar, but computationally expensive. Selective search + SVM Provides region proposals, which are classified. Helped bridge the gap between traditional machine learning and deep learning. While these machine learning methods set the groundwork, they simply could not outpace both the accuracy and scale of the now deep learning models.Deep Learning for Object DetectionDeep learning has transformed object detection by automating feature extraction via Convolutional Neural Networks (CNNs). Deep learning models automatically learn progressively abstract features from the data, improving speed and accuracy.Two-Stage DetectorsTwo-stage detectors separate the region proposal from classification. R-CNN (Regions with CNN Features) Uses Selective Search to propose region proposals. Uses a CNN to extract features from each proposed region and classify each region. Very accurate, but slow (each region is processed independently). Fast R-CNN This model shared convolutional computation across the image plane. It adds an ROI pooling layer to extract features using shared feature maps. Faster than R-CNN, but still not real-time, close to real-time. Faster R-CNN Introduces a Region Proposal Network for end-to-end training and prediction. Achieves accuracies very close to real-time performance. Single-Stage DetectorsSingle-stage detectors eliminate the need for region proposal and are capable of predicting bounding boxes and class labels directly. YOLO (You Only Look Once) This system is targeted for real-time detection. YOLO divides images into a grid and makes predictions about bounding boxes for each cell in the grid. The versions began with YOLOv3, then to YOLOv4, YOLOv5, and continue to the latest - YOLOv8 (the most recent versions now leverage Transformer-based modifications). SSD (Single Shot MultiBox Detector) SSD uses feature maps from multiple convolutional layers to perform detection. SSD offers a good tradeoff between speed and accuracy. RetinaNet RetinaNet introduced 'Focal Loss', or re-weighted losses, to aid in addressing the issue of class imbalance during training. RetinaNet shows good results across a range of benchmarks.Innovative Architectures and Trends (2025)Modern architectures combine CNNs, Transformers, and self-supervised learning techniques for better generalisation. DETR (Detection Transformer) An end-to-end object detection pipeline that employs Transformers. Negates the need for anchor boxes and Non-Max Suppression (NMS). Very accurate but less computationally efficient than YOLO. Vision Transformers (ViT) Attention mechanism (global feature extraction). Used with a hybrid CNN backbone for efficiency. Self-supervised learning (SSL) Models that are pretrained on unlabeled data (MAE, SimCLR) will transfer better with limited labelled datasets. Tools and FrameworksHere are some popular frameworks for implementing object detection: TensorFlow Object Detection API PyTorch + TorchVision Ultralytics YOLOv8 Detectron2 (by Meta AI) MMDetection Thanks

j.botterill
Influencer
j.botterillInfluencer

SDE file connections as Database Connections not sharable across FME Flow Connection StoreNew

ESRI only makes arcSDE connections available via a ‘sde file’ which is a propierity file stored on disk, sometimes C drive, other times on network storage. Often we struggle with access to these files, as some are open and read only access, others have higher privileges to write to the SDE geodatabase.So its confusing to me having *.sde files as “Database Connections”In 2025, we now have the option to store database connection in FME Flow. We can change the dataset path from local to the Shared Resources on FME, either the Engine or the Data folder.Flow database connection with SDE typeThis enables further re-use of the connection within Flow… however the problem then becomes how can FME authors manage the connection in Form?FME Flow connection storage is great, but not necessarily for SDE file database connectionsIn practice, you go to re-use the flow connection for SDE and despite the path being to Resouces (engine and shared to roles) the error is repeatable  Error’s connecting to feature types in ArcSDE geodb encountered in 2025.1The workaround for now is to follow Option 2 in article https://support.safe.com/hc/en-us/articles/30212601575693-How-to-Create-and-Manage-Esri-Geodatabase-ArcSDE-Connections-in-FME  storing a single SDE file in a network share location that is accessible to both Form and Flow Can Safe software please add an enhancement to help find a better solution surrounding SDE connections and FME?Maybe ESRI have ideas or community wishes to move away from only have *.sde files as the single means to connect to Spatial Database Engine. What's needed is another means/protocol to properly “direct connect” to the DBMS and to include the sde registry.Connect to the DBMS registered for SDE, add a new option to get license and work as SDEA requirement for FME Flow instance is to have ArcServer installed for the licensing of SDE/FGDB. Perhaps this opens up something new.