检测图像中汽车的朝向(这种问题类型叫什么)

我有大约2000张汽车图片,大多数朝右,但也有一些朝左。

我想找到一种方法来自动标记汽车的方向(新图片会持续进来)。

我很难开始,想知道这种图像检测问题是否有特定的名称,这可能会帮助我的搜索。对象方向检测是一个专门的领域吗?

我是一名软件开发者(不经常做机器学习或图像处理),手头有大量的Azure和GCC资源,但我找不到解决这个问题的办法。Azure认知服务可以告诉我们图片中有一辆车,但不能告诉我们车的方向。

我现在需要一个好的起点来开始工作。

应该补充说明,这些图片背景都是白色的,非常清晰,示例:朝左的车

朝右的车


回答:

感谢Venkata的评论,我们的问题是由一个糟糕的数据集引起的(朝右的图片太多而朝左的太少)。

以下是我们解决问题的步骤:

我们在Azure中设置了一个训练和预测实例(使用我们的门户中的自定义视觉认知服务)。

然后我们使用https://www.customvision.ai/来设置一切并训练模型(它非常简单)。

最后我们实际上并不需要朝左的图片,我们只用了所有朝右的图片(最终实例中大约有500张),我们把它们全部上传并标记为“右”。然后我们用Photoshop脚本镜像所有图片,并再次上传,标记为“左”。训练大约用了15分钟,我们最终得到了100%的预测分数。我们用一批不在训练集中的图片进行了测试,以确认一切正常。

我们对大量的货车/卡车图片也做了同样的事情,这些图片是从不同的角度拍摄的(汽车都是侧面照,货车都是前三分之二视角,所以我们不确定是否会取得同样的成功)。

同样,我们自己翻转图片来创建朝左的图片,所以我们只需要获取朝右的货车图片来构建整个模型。

我们最终得到了99.8%的分数,这对于我们的用例完全可以接受,现在我们可以检测所有汽车和货车的方向,甚至可以检测前三分之二视角的汽车和侧面照的货车(尽管我们只训练了侧面照的汽车和三分之二视角的货车)。

自定义视觉门户提供了API端点和密钥,现在当我们系统中检测到新图片时,它会通过API(使用我们的.net站点中的自定义图像sdk/nuget)进行处理,我们检查标签看是否需要翻转。如果需要,我们翻转它并保存回磁盘,然后它会被缓存,因此不会不断地访问API。

这真是太神奇了,我们只用了 deux天时间来研究选项,选择供应商,然后将解决方案实施到生产平台。对于ML来说,这可能是一个简单的用例,但十年前(甚至五年前),我们都无法想象事情会发展得这么快。

tldr; 如果你需要检测图像中物体是朝左还是朝右,只需获取大量朝右的示例,然后自己翻转它们来创建一个平衡的模型。显然,这依赖于物体从一侧到另一侧看起来相同。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注