Android使用百度大脑EasyDL识别交通标志物
比赛因为疫情凉了,没事干写写文章吧
视频效果:https://www.bilibili.com/video/BV1qU4y157dV
啥也不说先上图片看效果
项目介绍:Android端从摄像头中获取的含有交通标志物图片进行识别。
交通标志物包括:直行、掉头、左转、右转、禁止通行、禁止直行
项目实现步骤:
1、准备图片 每种标志物的图片120张就足够
2、通过EasyDL物体检测去训练图片
3、训练完后EasyDL可以下载一个对应的应用例程
4、将应用例程迁移到自己的程序里面
步骤一
如何获取图片呢?
可以通过摄像头录到的视频来一帧一帧的把图片给提取出来。
python+opencv来实现。
直接上代码:
import cv2
cap=cv2.VideoCapture("turnright (11).avi")#输入视频
isOpened=cap.isOpened
i=0
while(isOpened):if i==10:breakelse:i=i+1(flag,frame)=cap.read()fileName='turnright'+str(i)+'.jpg'#照片名字print(fileName)if flag==True:cv2.imwrite(fileName,frame,[cv2.IMWRITE_JPEG_CHROMA_QUALITY,100])#输出照片
上面代码自行测试调试理解
步骤二
百度大脑训练图片,网站操作视频来训练图片
https://ai.baidu.com/easydl/vision/
训练完成后
步骤三
下载训练好的SDK
通过官方文档调试
步骤四
阅读API文档移植到自己的程序里面
只需要从例程中移植出TestInferDetectionTask类
/*** 通用arm 物体检测*/
public class TestInferDetectionTask{private static final int NUM_OF_RUNS = 1;private static final int NUM_OF_API_CALLS = 1;private static final float CONFIDENCE = 0.5f;private static final String TAG = "TestInferDetectionTask";private static final String SERIAL_NUM = "BC57-01EC-32B2-BF02";public static Rect rect=null;public static String TrafficFlag() {String resString = null;try {for (int i = 0; i < NUM_OF_RUNS; i++) {/* 以下逻辑请放在同一个线程里执行,比如使用ThreadHandler *//* 1. 准备配置类,初始化Manager类。可以在onCreate或onResume中触发,请在非UI线程里调用 */InferConfig config = new InferConfig(XcApplication.getContext().getAssets(), "infer");InferManager manager = new InferManager(XcApplication.getContext(), config, SERIAL_NUM);/* 2.1 准备图片,作为Bitmap输入 */InputStream is = XcApplication.getApp().getAssets().open("test.jpg");Bitmap image = BitmapFactory.decodeStream(is);is.close();/* 2.2 推理图片及解析结果 */List<DetectionResultModel> models_results = null;String resStr = "";for (int j = 0; j < NUM_OF_API_CALLS; j++) {// models_results = manager.detect(image, CONFIDENCE);models_results = manager.detect(MainActivity.bitmap, CONFIDENCE);// 在模型销毁前可以不断调用。但是不支持多线程。// 解析结果if (models_results != null) {if (models_results.size() > 0) {resStr += models_results.get(0).getLabel() + ", " + models_results.get(0).getConfidence();resString = models_results.get(0).getLabel();}}Log.e(TAG, "识别结果: " + resStr);Log.e(TAG, "识别结果: " + resString);rect=models_results.get(0).getBounds();Log.e(TAG, "外包围矩形:"+rect);Log.e(TAG, "外包围矩形上:"+models_results.get(0).getBounds().top);Log.e(TAG, "外包围矩形左:"+models_results.get(0).getBounds().left);Log.e(TAG, "外包围矩形右:"+models_results.get(0).getBounds().right);Log.e(TAG, "外包围矩形下:"+models_results.get(0).getBounds().bottom);Log.e(TAG, "外包围矩形宽:"+models_results.get(0).getBounds().width());Log.e(TAG, "外包围矩形高:"+models_results.get(0).getBounds().height());}/* 3. 销毁模型。可以在onDestroy或onPause中触发,请在非UI线程里调用 */manager.destroy();}} catch (Exception e) {e.printStackTrace();Log.e(TAG, "错误: ");}return resString;}//识别结果转换//直行0x01 左转0x02 右转0x03 掉头0x04 禁止直行0x05 禁止通行0x06public static int trafficFlag(String res){int which=1;if (res!=null){if (res.equals("go_straight")){Log.e(TAG, "识别直行");which=1;}else if (res.equals("turn_left")){Log.e(TAG, "识别左转");which=2;} else if (res.equals("turn_right")){Log.e(TAG, "识别右转");which=3;}else if (res.equals("turn_around")){Log.e(TAG, "识别掉头");which=4;}else if (res.equals("no_straight")){Log.e(TAG, "识别禁止直行");which=5;}else if (res.equals("no_turn")){Log.e(TAG, "识别禁止通行");which=6;}}return which;}
}
这期间肯定会遇到各种各样的问题,但是你只能查官方文档和google或百度,不断地遇到问题不断地解决问题。你我之间都是从零开始。
Android使用百度大脑EasyDL识别交通标志物相关推荐
- 直播实录|百度大脑EasyDL是如何帮助NLP文本提升标注效率的?又如何进行复杂文本分类的?
百度大脑EasyDL是如何帮助NLP文本分类用户提升标注效率的?业界领先的文本分类智能标注产品效果如何?在百度产品经理夜巡的带领下,你将会学习到EasyDL专业版文本分类模型最新上线的智能标注功能的具 ...
- 快消零售行业核心场景痛点解决:百度大脑EasyDL零售版功能详解
对于快消品牌商而言,许多工作都围绕着提高产品销量展开.然而,即便是在电商网购盛行的今天,线下门店的购买量仍然是产品销量的重要部分. 因此,品牌商在不断优化策略提高线下门店的产品销量.其中,洞察和提升商 ...
- 百度大脑EasyDL专业版重磅升级 预置网络更丰富,开发更灵活
百度大脑EasyDL是基于飞桨框架PaddlePaddle推出的面向企业打造的零门槛AI开发平台,可为各行业有AI模型开发需求的企业及开发者,提供从数据管理与标注.模型训练.服务部署的全流程支持,使用 ...
- 得力人脸识别考勤机密码设置_百度大脑人脸识别公有云日均调用量过亿 成为业内第一...
"刷脸"时代的背后,是技术"一日千里"的快速发展和演进.9月26日,百度来到深圳并召开了百度大脑人脸识别新产品及伙伴计划发布会.会上,百度首次公开人脸识别公有云 ...
- 百度大脑EasyDL多人标注重磅上线啦
今天给大家带来的是百度大脑EasyDL多人标注重磅上线,助力团队协作标注的相关信息,下面我们来看具体内容! 无论是企业的AI业务应用开发,还是高校师生团队的AI科研项目,想要获取高精度模型,除了需要选 ...
- 直播实录|百度大脑EasyDL邀一线专家分享肿瘤识别
本次的EasyDL产业应用系列直播课将在下周迎来最后一期--领域信息处理NLP专场.在NLP专场中,在下周二和下周三,6月9号与10号,我们分别为大家带来业界领先的文本分类智能标注产品介绍,并由猎头咨 ...
- android人脸检测开发——百度大脑离线识别SDK
有些仿制google mobile vision API嫌疑,但还要收费. https://ai.baidu.com/tech/face/detect 百度人脸离线识别SDK http://ai.ba ...
- 直播知识点实录|百度大脑EasyDL产业应用系列 质检专场
EasyDL产业应用系列[安全生产及数据处理]公开课,课程中不仅介绍了EasyDL在安全生产领域的落地案例与实战演示,还有新上线的EasyData智能数据服务平台功能与介绍.没有参加课程的小伙伴也不用 ...
- 直播实录|百度大脑EasyDL·NVIDIA专场 视频场景数据处理
视频场景数据处理及模型训练 时间:2020年5月29日 讲师:NVIDIA高级解决方案架构师张海军主要负责NVIDIA Jetson系列产品技术及架构相关的解决方案. [直播回放] EasyDL-Je ...
- 直播实录|如何使用百度大脑EasyDL构建互联网内容安全方案?
如何使用EasyDL构建互联网内容安全方案 时间:2020年6月2日 讲师:百度AI技术生态部高级产品经理 Nathan [直播回放] 如何使用EasyDL构建互联网内容安全方案:https://ww ...
最新文章
- Nature:拟南芥微生物组功能研究3人工重组微生物群落
- 无线网***工具进攻方法及防范技巧
- 什么数据库比mysql效率高_牛x!一款比传统数据库快 100-1000 倍的数据库,来认识一下?...
- 使用MyBatis框架时发现的一些小bug
- 搭建PC架构的ISCSI存储系统
- m2eclipse简单使用,创建Maven项目 ,运行mvn命令(转)
- SQL Server schema 用法
- 闪讯钳制下Linux系统上网解决方案
- 14个免费的 GIS 软件:以开源的方式绘制地图
- 计算机屏显内容超过屏幕了,电脑屏幕超出工作频率范围修复方法
- Z(zombie)僵尸进程和孤儿进程
- python图片分析中央气象台降水量预报_获取中央气象台网的气象数据 全流程技术解析(python 爬虫)...
- Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Process
- 决策树可视化:鸢尾花数据集分类(附代码数据集)
- [系统安全] 二十一.PE数字签名之(中)Signcode、PEView、010Editor、Asn1View工具用法
- 10条SKETCH的秘诀,为你提高工作的效率
- 论文:lda2vev:Mixing Dirichlet Topic Models and Word Embeddings to Make lda2vec
- 苹果手机换鸿蒙系统,鸿蒙横空出世了,换掉苹果机你愿意吗?
- 计算机vf中rest是什么意思,vf常用命令(全)
- 成都大数据三大平台正式上线
热门文章
- 移动内部疯传的11篇VoLTE学习笔记,看懂了你也是技术大神(二)
- 云服务器延迟测试,云服务器网络延迟和丢包
- Android 手机和盒子遥控器
- mac Segmentation Fault
- SSH known_hosts / authorized_keys 的解释
- OpenStack排错记录---ResourceProviderCreationFailed和You are not authorized to perform the requested actio
- 2022.4.21 python中关于sklearn 0.18的错误—— cannot import name comb
- python模拟生成微软序列号,python生成随机序列号
- Auditing SQL Server SQL Statements
- linux修改为英文环境、中文输入