Question

FME 2019 does machine learning/computer vision

  • 31 July 2019
  • 9 replies
  • 24 views

Badge +3

So, I was very excited about the new feature "computer vision" after attending the FME World Tour earlier this year. Finally I can get FME to do the same for me as Google Photos, namely find objects in a large set of photos.

Hugely dissapointed when I actually started looking into this. VERY LITTLE documentation. Found this blog post though: https://www.safe.com/blog/2019/01/fme-does-computer-vision/

I cannot even get the GUI to mark objects in my photos to run. After a little time on Google I can see that I'm not alone... Many having troubles both with preparing photos and using the transformers.

Really Safe Software, using this as one of the new key features for 2019 and it seamingly does not even work properly...

Please, can you publish some proper documentation and examples like you always do. I will not waste any more of my time until I now this works and have a proper documentation/example to go from.... @daleatsafe?

Best regards,

Atle


9 replies

Userlevel 4

I have no comment to your specific critcism (I'll leave that one to Safe), but I can offer my personal opinion.

If you are looking for high-volume object detection with a high degree of certainty and minimal to no training, you probably want to consider going straight to the big players that supply ready-made solutions, e.g. AWS. That way you can leverage the considerable efforts that's already gone into their products for a minimal cost and without spending much of your own time.

I've made a prototype that does the following:

  • Using FME and Python, query the Flickr API for image URLs based on keywords
  • Sends the resulting Flickr URLs to AWS SQS
  • AWS Lambda function that picks up the URL from the SQS and downloads the image to S3
  • AWS Lambda function detects incoming images on S3 and sends them to AWS Rekognition, the results are stored in AWS DynamoDb
  • FME picks up the results from DynamoDb and processes the results

My take-away was:

  • Minimal development effort, great documentation from AWS
  • The quality of the results from AWS Rekognition could only be described as astounding
  • Excellent performance, as all the heavy lifting runs on AWS and leverages their infrastructure
  • Very low cost (I was able to do facial detection on about 50k images for about USD 10)

If you are looking for detection of non-standard objects (e.g. hydrants) there are also services for that, but realize that the results will only be as good as your own training dataset.

Badge +3

I have no comment to your specific critcism (I'll leave that one to Safe), but I can offer my personal opinion.

If you are looking for high-volume object detection with a high degree of certainty and minimal to no training, you probably want to consider going straight to the big players that supply ready-made solutions, e.g. AWS. That way you can leverage the considerable efforts that's already gone into their products for a minimal cost and without spending much of your own time.

I've made a prototype that does the following:

  • Using FME and Python, query the Flickr API for image URLs based on keywords
  • Sends the resulting Flickr URLs to AWS SQS
  • AWS Lambda function that picks up the URL from the SQS and downloads the image to S3
  • AWS Lambda function detects incoming images on S3 and sends them to AWS Rekognition, the results are stored in AWS DynamoDb
  • FME picks up the results from DynamoDb and processes the results

My take-away was:

  • Minimal development effort, great documentation from AWS
  • The quality of the results from AWS Rekognition could only be described as astounding
  • Excellent performance, as all the heavy lifting runs on AWS and leverages their infrastructure
  • Very low cost (I was able to do facial detection on about 50k images for about USD 10)

If you are looking for detection of non-standard objects (e.g. hydrants) there are also services for that, but realize that the results will only be as good as your own training dataset.

Thanks for your reply David. I will check out the AWS Rekognition! However hopefully I will get this to work using FME, preferably either by utilizing sample workspaces and documentation guiding me through the process.

I'm a huge fan of Safe and FME, but that does not stop me from crying out when I find something to be less than optimal (in my own opinion) in the software.. :)

Userlevel 4
Badge +13

Hello @atle_hoidalen. As machine learning is a new addition to FME this year, from the product side development is continuing to refine and improve it. We currently have some RasterObjectDetector documentation. I would be interested in learning more about your challenges, would you please reply to this thread providing additional details:

  • A clear statement of the problem you are trying to resolve
  • A small sample of your data, or screenshots of the data in the FME Data Inspector
  • A description of your expected output, with screenshots if possible
  • Your FME workspace
  • Any other information that may be useful to share

Thank you

Badge

Hi @atle_hoidalen,

 

 

Just wanted to add this to @david_r's answer:

 

 

We are currently working on an Amazon AI Package including a RekognitionConnector which will allow you to send a set of different requests to this API right out of FME whit support for an FME Raster geometry as well as local files and files on S3. This will make it very easy to automate the above process with FME & AWS without the need of training data as long as you go for the standard object and face detection options of Amazon Rekognition. This is currently targeted to be available in 2019.2.

We are also looking into providing the same support for similar services offered by Microsoft Azure and Google Cloud.

Badge +3

Hello @atle_hoidalen. As machine learning is a new addition to FME this year, from the product side development is continuing to refine and improve it. We currently have some RasterObjectDetector documentation. I would be interested in learning more about your challenges, would you please reply to this thread providing additional details:

  • A clear statement of the problem you are trying to resolve
  • A small sample of your data, or screenshots of the data in the FME Data Inspector
  • A description of your expected output, with screenshots if possible
  • Your FME workspace
  • Any other information that may be useful to share

Thank you

Hi Natalie, as described in my initial comment (but maybe not clearly enough) I'm struggling to understand how to prepare photos for training custom object. I have not used the transformers yet. It's cool that there is some predefined object detections there, but really who has use for detecting russian license plates..? :)

I have no current specific usage for this functionality, I was merely trying to understand how it works and maybe se what it is capable of. I.eg. I could use it to detect manholes from aerial photos.

So really, in my opinion, for the rasterobject detector to be able to do something usefull, you have to prepare your own photos, the predefined object detection models are fun, but not useful for anything in my work anyway.

A more detailed step by step workflow on how to use the tools from OpenCV to prepare the photos would be nice. And also a workspace and dataset for testing, like you do with most other transformers.

Hope this clears up what I meant to communicate in my inital post.

Badge +3

Hi @atle_hoidalen,

 

 

Just wanted to add this to @david_r's answer:

 

 

We are currently working on an Amazon AI Package including a RekognitionConnector which will allow you to send a set of different requests to this API right out of FME whit support for an FME Raster geometry as well as local files and files on S3. This will make it very easy to automate the above process with FME & AWS without the need of training data as long as you go for the standard object and face detection options of Amazon Rekognition. This is currently targeted to be available in 2019.2.

We are also looking into providing the same support for similar services offered by Microsoft Azure and Google Cloud.

Thanks Gerhard, this sound interesting. I have not looked into the details and detection models that are available in the Rekognition service yet, but will do.

Userlevel 4
Badge +13

Thanks @atle_hoidalen for the feedback. Yes, we will agree that the "training" part of the openCV is the nasty part, and that is a bit outside of normal FME workflow. However, we'll make sure if/when we incorporate externally created and maintained functionality that we factor in the effort needed to document the parts that are, strictly speaking, outside of FME, but still necessary to make it all work in an FME workflow. So a good lesson here.

That said, the work @gerhardatsafe and the team are doing to connect directly to the "big players" promises to be a much nicer experience in every way (at the cost of, well, some $$ to pay to those "big players" to use their services...).

Badge +3

Thanks @atle_hoidalen for the feedback. Yes, we will agree that the "training" part of the openCV is the nasty part, and that is a bit outside of normal FME workflow. However, we'll make sure if/when we incorporate externally created and maintained functionality that we factor in the effort needed to document the parts that are, strictly speaking, outside of FME, but still necessary to make it all work in an FME workflow. So a good lesson here.

That said, the work @gerhardatsafe and the team are doing to connect directly to the "big players" promises to be a much nicer experience in every way (at the cost of, well, some $$ to pay to those "big players" to use their services...).

Thanks for commenting Dale,

Yes I'm looking forward to see what's coming. I see some great potensial here to to stuff with i.eg. aerial imagery that is not possible with normal raster analysis. :)

Badge +8

Can't wait to see an extended webinar about this incredible topic! :)

Reply