在RapidMiner进程中使用AWS Image ML

sgenzersgenzer 管理员,版主,员工,RapidMiner认证分析师,社区经理,成员,大学教授,PM版主职位:2959年社区经理
2020年4月编辑 知识库
我一直需要一些好的图像机器学习分析,你们很多人都知道,RapidMiner没有任何开箱即用的东西,而且市场上的图像挖掘扩展已经死了。所以我找到了一个很简单的办法AWS的rerecognition ML引擎将此作为RM流程的一部分。

请注意,为了做到这一点,你需要在你的计算机上安装Python(谷歌它),一个具有访问AWS Rekognition(谷歌它)的IAM用户的AWS帐户+一个新的S3桶的照片(谷歌它),最后,你需要在你的计算机上安装AWS CLI(是的,谷歌它)。我将专注于如何通过RapidMiner利用这些工具…

这里的例子是,我有一个包含200多张人脸照片的文件夹,我想让AWS Rekognition找到匹配。这只是rekrecognition所做的众多事情之一;您可以很容易地修改这里所做的工作,以使用其他rekrecognition功能。

1.把你所有的照片放在本地硬盘的文件夹里。我的将是我桌面上的“照片”(是的,非常原始)和S3中一个名为“my-rapidminer-photo-bucket”的新空桶。

2.首先转到命令行(在RapidMiner之前),创建一个新的AWS rekrecognition“集合”,如下所示:

{"StatusCode": 200, "CollectionArn": "aws:rekognition:us -- -- -1:1234567890:collection/rapidminer-photo-collection", "FaceModelVersion": "4.0"}aws rekognition create-collection——collection-id "rapidminer-photo-collection"
如果你这样做正确,你应该得到这样一个JSON响应:

你不需要记住所有的收藏。你所需要的只是名字,同样是“rapidminer-photo-collection”或任何你想要的名字。

如果你没有得到这个,说明你没有正确设置Python、AWS CLI或Rekognition——见上文。

3.如果您还没有安装AWS连接,请进入RapidMiner Studio 9.3+并通过Connections -> create connection创建一个


输入信息,测试连接,然后单击Save(您将需要访问密钥ID和来自AWS IAM的密钥- google它):)


4.好了,现在我们准备开始了。我将所有内容放入Loop Files操作符中,以便每次抓取一张照片:





如果一切运行正常,你应该在你的存储库中看到一整套JSON文档,如下所示:



每个都是一个JSON文档,看起来像这样:

{"FaceRecords": [{"Face": {"FaceId": "9f2ce8a9-e92a-4b59-89fe-45c4b2799758", "BoundingBox": {"Width": 0.3861278295516968, "Height": 0.5588363409042358, "Left": 0.2703650891780853, "Top": 0.230244045c4b27268036}, "ImageId": "4eef6650-66a6-327f-b273-8af72bfbcd31", "ExternalImageId": " jeff150 .png", "Confidence": 100.0}, "FaceDetail": {"BoundingBox": {"Width": 0.3861278295516968, "Height": 0.5588363409042358, "Left": 0.2703650891780853, "Top": 0.23024408519268036}, "AgeRange": {"Low":26,“High”:43},“Smile”:{“Value”:true,“Confidence”:99.98046875},“glasses”:{“Value”:false,“Confidence”:99.97008514404297},“墨镜”:{“Value”:false,“Confidence”:99.99800109863281},“Gender”:{“Value”:“Male”,“Confidence”:99.1029052734375},“Beard”:{“Value”:false,“Confidence”:98.66301727294922},“Mustache”:{“Value”:false,“Confidence”:99.95088195800781},“EyesOpen”:{“Value”:true,“Confidence”:99.06494140625},“MouthOpen”:{“Value”:true,“Confidence”:99.06494140625},“MouthOpen”:{“Value”:false:true,“Confidence”:99.98346710205078},“Emotions”:[{“Type”:“CONFUSED”,“Confidence”:0.5428526997566223},{“Type”:“CALM”,“Confidence”:0.05530524253845215},{“Type”:“SAD”,“Confidence”:0.1881987452507019},{“Type”:“HAPPY”,“Confidence”:98.24203491210938},{“Type”:“ANGRY”,“Confidence”:0.3804956078529358},{“Type”:“ANGRY”,“Confidence”:0.3804956078529323},{“Type”:“SURPRISED”,“Confidence”:0.2150907665491104}],“Landmarks”:[{“Type”:“SURPRISED”,“Confidence”:0.2150907665491104}];{"Type": " eyeight ", "X": 0.5177920460700989, "Y": 0.436348974474243}, {"Type": "mouthLeft", "X": 0.3916309177875519, "Y": 0.63540375523269653}, {"Type": "mouthRight", "X": 0.4365059971809387, "Y": 0.6121758818626404}, {"Type": "nose", "X": 0.43410542607307434, "Y": 0.5494727492332458}, {"Type": "leftEyeBrowLeft", "X": 0.27506881952285767, "Y": 0.4329904317855835}, {"Type": "leftEyeBrowRight", "X": 0.3644544184207916, "Y": 0.3644544184207916, "Y": "leftEyeBrowRight":0.4101848006248474},{“类型”:“leftEyeBrowUp”、“X”:0.31583666801452637,“Y”:0.40736645460128784},{“类型”:“rightEyeBrowLeft”、“X”:0.46626558899879456,“Y”:0.39288046956062317},{“类型”:“rightEyeBrowRight”、“X”:0.583577573299408,“Y”:0.38229167461395264},{“类型”:“rightEyeBrowUp”、“X”:0.519176185131073,“Y”:0.3738865256309509},{“类型”:“leftEyeLeft”、“X”:0.31687256693840027,“Y”:0.46678152680397034},{“类型”:“leftEyeRight”、“X”:0.37901556491851807,“Y”:0.45939797163009644},{“类型”:“leftEyeUp”、“X”:0.3424757122993469,“Y”:0.4556279480457306},{“类型”:“leftEyeDown”、“X”:0.3470779061317444,“Y”:0.47103920578956604},{“类型”:“rightEyeLeft”、“X”:0.481747567653656,“Y”:0.4420488774776459},{“类型”:“rightEyeRight”、“X”:0.5469238758087158,“Y”:0.42812928557395935},{“类型”:“rightEyeUp”、“X”:0.5130537748336792,“Y”:0.4269404411315918},{“类型”:“rightEyeDown”、“X”:0.5152965188026428,“Y”:0.442842572927475},{“类型”:"noseLeft", "X": 0.41318249702453613, "Y": 0.5713274478912354}, {"Type": "noseRight", "X": 0.478874218940735, "Y": 0.6071081161799023}, {"Type": "mouthUp", "X": 0.445221784710884094, "Y": 0.6578934788703918}, {"Type": " left小学生","X": 0.3437647521495819, "Y": 0.4651378095149994}, {"Type": " right小学生","X": 0.5177920460700989, "Y": 0.43634897470474243}, {"Type": "upperJawlineLeft", "X": 0.5177920460700989, "Y": 0.436348974474243}, {"Type": "upperJawlineLeft", "X": 0.5177920460700989, "Type": "upperJawlineLeft", "X": 0.5177920460700989, "Type": "upperJawlineLeft", "X": 0.4177920460700989;0.26342642307281494、“Y”:0.4715827703475952},{“类型”:“midJawlineLeft”、“X”:0.3328382074832916,“Y”:0.6567277312278748},{“类型”:“chinBottom”、“X”:0.48781800270080566,“Y”:0.7458537817001343},{“类型”:“midJawlineRight”、“X”:0.6430425047874451,“Y”:0.6041476130485535},{“类型”:“upperJawlineRight”、“X”:0.6498627066612244,“Y”:0.4060761630535126}],“姿态”:{“卷”:-8.89261245727539,“偏航”:5.9243316650390625,“球场”:10.257037162780762},“质量”:{“亮度”:85.69664001464844,“清晰度”:78.64350128173828},“信心”:100.0}}],“FaceModelVersion”:“4.0”,“UnindexedFaces”:[]}



请注意,AWS Rekognition实际上是在寻找每张照片的所有面部特征相对于面部的三维方向-这很酷。

[你实际上不需要存储json来做这个,但我这样做只是为了把它们放在手边…]

5.现在你只要上传一张新照片到Rekognition,看看我们是否有匹配的:



{"SearchedFaceBoundingBox": {"Width": 0.17513641715049744, "Height": 0.3737623691558838, "Left": 0.4294132590293884, "Top": 0.327239990234375}, " searchedfaceconfident ":: 99.99996185302734, "FaceMatches": [{"Similarity": 99.84569549560547, "Face": {"FaceId": "e530b0db-6e1d-4093-8b40-218c0fa57b91", "BoundingBox": {"Width": 0.38082998991012573, "Height": 0.5171380043029785, "Left": 0.3233790099620819, "Top": 0.23423700034618378}, "ImageId":"01f280b9-094f-3671-856b-0f2a6b3748a9", "ExternalImageId": "ingo-150.png", "Confidence": 100.0}}], "FaceModelVersion": "4.0"}


繁荣!正如你所看到的,AWS面部识别正确地识别了我们无畏的领导者@IngoRM作为“神秘人”从图像集合(基本上是训练集)。



训练集的Ingo的照片


被AWS人脸识别正确识别的Ingo的“神秘照片”。

如果你想自己尝试一下(并且你已经有了RapidMiner Studio),这两个进程都在Community Repository中。



玩得开心!

斯科特


IngoRM sgenzer varunm1 klanio lionelderkrikor Telcontar120 Tghadially Pavithra_Rao PaulM joeanalytica (删除用户) 罗宾 btibert

评论

  • joeanalyticajoeanalytica 成员职位:7因素二世
    2019年10月编辑
    斯科特,谢谢你的帖子。
    太棒了!

    Windows用户只需注意——您需要更改——image参数的JSON格式,并将换行符从反斜杠(\)更改为插入符号(^)。

    事情是这样的:

    Aws识别索引-人脸^
    ——图像”{\“S3Object \”:{\“斗\”:\“my-rapidminer-photo-bucket \”,\“\”,\“% {file_name} \”}}”^
    ——collection-id "rapidminer-photo-collection" ^
    ——max-faces 1 ^
    ——质量过滤器“AUTO”^
    ——detection-attributes "ALL" ^
    ——external-image-id“% {file_name}”

    问候;

    MartinLiebig varunm1 sgenzer
  • sgenzersgenzer 管理员,版主,员工,RapidMiner认证分析师,社区经理,成员,大学教授,PM版主职位:2959年社区经理
    谢谢@joeanalytica
登录注册置评。