[文章]HiSpark AI Camera HarmonyOS :3.深度学习探索[一] :鱼脸识别&资料整理与数据共享

阅读量0
0
0


【目录】
  • 核心:鱼脸识别相关内容与数据共享
  • 杂记:VScode更换颜色主题
  • 分享:其他资料整理、罗列
  • 学习:内核与用户态APP通信机制(待完善)
  • 拓展:别人的单片机跑深度学习的项目

最终目标: 渔业卫士-基于图像识别的多自由度水下机器人
  • 约三个月时间,应用该款硬件输出可识别鱼类的demo,并完成硬件平台的搭建;
  • 将开发的过程、具体实现等信息以帖子的形式分享,开源相关的技术资料文档。  

【1】核心:鱼脸识别相关内容与数据共享
(使用python语言,于jupyter notebook编写)
链接:https://pan.baidu.com/s/1kpnj26DNV4aViVBRqbr0gw
提取码:1234
1.1 获得鱼类图片数据:
(1)推荐Fish Recognition Ground:http://groups.inf.ed.ac.uk/f4k/GROUNDTRUTH/RECOG/,我找到的最好的鱼类数据就在这里,有单独的标签文件,方便训练模型。
(2)kaggle的鱼类数据:网址是https://www.kaggle.com/datasets,搜索fish就会看到很多鱼类图片。下载需要很久,可以考虑在某宝上找人代下。
从Fish Recognition Ground的鱼类数据背景比较纯,而kaggle上有各种鱼类图片数据,本文使用的是FishDataset这个数据集,有3G大小,背景不纯净。数据的文件夹名就是鱼类的名字。

1.2 读取数据:
1.2.1 基本都要引入的库:
  1. import os
  2. import pathlib #将路径从字符串转成对象
  3. import numpy as np
  4. import pandas as pd
  5. import tensorflow as tf
  6. import matplotlib.pyplot as plt #画图用到
复制代码


1.2.2 获取数据路径
  1. doc_path=pathlib.Path(r'C:Users10850Desktop鱼类图片other fishtrain')#pathlib.Path()函数将字符串路径转成对象
复制代码

帖子01.jpg
1.2.3查看一下该路径下的图片

  1. import random
  2. image_path=random.choice(all_image_paths)#随机抽取一张图片
  3. import IPython.display as display
  4. display.Image(image_path) #展示图片
复制代码

帖子02.jpg


1.2.4 将图片打乱,避免可能存在的图片顺序影响模型训练
  1. random.shuffle(all_image_paths)
复制代码
1.2.5 打上标签(文件夹名就是标签)

  1. #专门用一个列表存储对应的标签image_label=[path.parent.name for path inall_image_paths]
  2. image_label
复制代码
帖子03.jpg


所有的标签都是10,因为我们打开的是同一种鱼(鳕鱼)的文件夹。下一篇我们会同时读取多种鱼类图片并且打上标签,进行建模。本节比较难的地方在于pathlib的用法,path.parent.name等函数的出现。建议查看pathlib的文档,python使用这个库读取文件路径真的很方便。https://docs.python.org/zh-cn/3.7/library/pathlib.html。各大论坛也都有介绍,这是你不能错过的库。



【2】  杂记:VScode更换颜色主题
步骤一:
更换颜色主题.png

步骤二与效果图:
更好颜色主题后.png


【3】资料整理、罗列
3.1 方舟编译器
(1)开源的官网:
https://www.openarkcompiler.cn/home  
首次开源范围是编译器 IR( Intermediate Representation)、RC(Reference Counting)和多语言设计思想等。
(2)华为云托管地址:https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler
(3)开源中国码云托管地址:
https://gitee.com/harmonyos/OpenArkCompiler
3.2(待续)


【4】内核与用户态APP通信机制(待完善)
liteos-a 中使用 HDF 时,APP 需要先获得服务,然后调用服务的 Dispatch 函数(用于向驱动发送数据、获得返回结果)

【5】拓展:别人的单片机跑深度学习的项目  
【手写字体识别项目】:
1、GitHub上的相关工程代码:
https://github.com/Shuep418Slw/OSlw_Code
2、【单片机也能玩深度学习】(操作系统)00:开篇+移植
https://www.bilibili.com/video/BV1ft411H7rQ?t=34
3、其他的视频
https://space.bilibili.com/396568102?spm_id_from=333.788.b_765f7570696e666f.2










回帖

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
链接复制成功,分享给好友