码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 慧眼APP开发项目


    目录

    第1章  项目概述... 3

    第2章  可行性分析... 4

    2.1  技术可行性... 4

    2.2  数据可行性... 4

    2.3  应用可行性... 4

    第3章  环境搭建... 5

    3.1  模型搭建... 5

    3.1.1  安装PaddleDetection. 5

    3.1.2  自定义数据集... 5

    3.2  APP搭建... 5

    3.2.1  安装Android Studio. 5

    3.2.1  安装Paddle Lite. 5

    第4章  项目设计... 6

    4.1 模型设计... 6

    4.2 应用设计... 6

    第5章  项目实现... 7

    5.1  自定义数据集部分... 7

    5.2  模型训练部分... 2

    5.3  模型转换部分... 2

    5.4  GUI开发部分... 2

    5.5  模型部署部分... 3

    第6章  项目测试... 4

    6.1  模型性能测试部分... 4

    6.2  应用功能测试部分... 4

     

    第1章  项目概述

    随着计算机视觉技术的发展,目标检测已经成为一个普遍关注的研究领域。目标检测是计算机视觉中的一项重要任务,主要用于对物品实时的分类与检测。传统的目标检测方法通常基于特征提取和模板匹配,但是这些方法受到了图像质量,光照变化和姿态变化等因素的影响。

    最近,深度学习技术已经成为目标检测领域的一个重要研究方向。深度学习技术可以通过多层神经网络学习高级特征,从而提高目标检测的准确率。目前,有许多基于深度学习的目标检测方法已经被提出,其中包括卷积神经网络(Convolutional Neural Network,CNN)和生成对抗网络(Generative Adversarial Network,GAN)等。

    本文综述了基于深度学习的目标检测的研究进展,重点介绍了CNN在目标检测中的应用。

    本项目旨在开发一款基于 PaddleDetection的生活物品目标检测应用。这款应用能够在手机上实时识别和定位常见的物品,如手机、椅子、碗等。为了实现这个目标,我们首先使用自定义的数据集来训练物品检测模型,然后使用 Paddle Lite将模型转换为 .nb 格式,这种格式适用于在移动设备上部署模型。最后,我们使用 Android Studio 开发应用,应用基于 PaddleDetection 的 android_demo模板。

     

    第2章  可行性分析

    2.1  技术可行性

    项目使用的技术,包括深度学习、目标检测、PaddleDetection框架、Android开发等,都是目前广泛使用且成熟的技术。使用YOLOv3_MobileNet_V1作为预训练模型,该模型具有实时性和轻量级的特性,适合在移动设备上运行。使用Paddle Lite将模型转换为.nb格式,这是PaddlePaddle针对移动设备推出的轻量级推理框架,可以有效地支持在Android设备上运行模型。因此,从技术角度看,该项目是完全可行的。

    2.2  数据可行性

    项目通过网络爬虫获取所需的图片数据,并使用LabelImg进行标注。自定义的数据集包含了目标物品(手机、椅子、碗)的图像,这些都是日常生活中常见的物品,获取相应的图片和标注数据相对较容易,因此,从数据获取和处理的角度看,该项目也是可行的。

    2.3  应用可行性

    该项目的目标是开发一款可以在手机上实时识别和定位常见物品的应用,这种应用在实际生活中具有广泛的应用场景,例如,它可以帮助视障人士识别周围的物品,也可以在智能家居、安防监控等领域中应用。此外,项目使用Android Studio进行应用开发,并基于PaddleDetection的android_demo模板,这可以大大降低开发难度和时间,因此,从应用的需求和开发的角度看,该项目也是可行的。

     

    第3章  环境搭建

    3.1  模型搭建

    3.1.1  安装PaddleDetection

    首先在PaddlePaddle开发环境中安装 PaddleDetection 。其次,模型搭建需要自定义数据集,我们通过网络爬虫爬取所需图片,并在LabelImg中进行后续的处理与分类。

    安装命令:pip install paddledetection

    3.1.2  自定义数据集

    我们自定义的数据集包含标注了我们希望模型能够检测的物品(即手机、椅子、碗)的图像。每个图像的标注包含物品的类别和边界框。

    3.2  APP搭建

    在APP环境搭建部分,我们依次安装 了Android Studio 和 Paddle Lite。

    3.2.1  安装Android Studio

    我们从Android Studio 的官方网站下载并安装它.

    3.2.1  安装Paddle Lite

    Paddle Lite 则是在PaddlePaddle开发环境中通过以下命令进行安装:

    安装命令:pip install paddlelite

     

    第4章  项目设计

    图4.1  模型网络结构

    4.1 模型设计

    我们选择了YOLOv3_MobileNet_V1作为目标检测预训练模型。它结合了YOLOv3和MobileNet V1两种模型的优点。YOLOv3是一种实时目标检测算法,而MobileNet V1是一种轻量级的卷积神经网络。这种组合使得模型在保持较高精度的同时,具有较快的推理速度。在训练过程中,我们将使用我们的自定义数据集来优化这个模型的参数。

    4.2 应用设计

    应用的设计基于 PaddleDetection 的 android_demo 模板。它包括一个用户界面(UI),用于显示摄像头捕捉的实时图像和模型检测到的物品,以及一个后端,用于处理图像并运行模型。后端的设计包括了图像预处理、模型推理、和结果后处理三个主要步骤。

     

    第5章  项目实现

    图5.1  设计过程思维导图

    5.1  自定义数据集部分

    使用程序将处理过的图片及标注信息的xml文件进行匹配并打乱,生成训练及测试列表。

    图5.1.1  数据集

    图5,1.2  图片数据

    图5.1.3  xml数据

    5.2  模型训练部分

    我们选择了一个预训练YOLOv3_MobileNet_V1模型,并使用我们的数据集对它进行微调。

    训练模型命令:python tools/train.py -c configs/yolov3_mobilenet_v1.yml –eval

    导出模型命令:python tools/export_model.py -c configs/yolov3/yolov3_mobilenet_v1.yml -o weights=output/yolov3_mobilenet_v1/ --output_dir=/home/aistudio/model

    图5.2.1  导出的模型文件

    5.3  模型转换部分

    模型训练完成后,我们需要使用 Paddle Lite 将它转换为 .nb 格式,以便在移动设备上部署。

    模型转化命令:paddle_lite_opt  --model_dir=/home/aistudio/model/ --model_file=/home/aistudio/model/__model__ --param_file=/home/aistudio/model/__params__ --optimize_out_type=naive_buffer --optimize_out=./best_mobilenet_modelv1.nb --valid_targets=arm

    图5.3.1  转化后的模型文件

    5.4  GUI开发部分

    我们使用 Android Studio 来开发应用的用户界面。这个界面包含一个用于显示实时图像和模型检测到的物品的视图。

    图5.4.1  APP页面

    5.5  模型部署部分

    使用 Android Studio ,将.nb模型文件部署到APP中。

     

    第6章  项目测试

    6.1  模型性能测试部分

    在模型的性能测试部分,我们使用一部分自定义数据集作为测试集,来评估模型的准确率。

    模型测试命令:python tools/infer.py -c configs/yolov3_mobilenet_v1.yml -o use_gpu=true --infer_img=demo/bowl.png

    图6.1.1  测试结果

    6.2  应用功能测试部分

    在应用的功能测试部分,我们在一台 Android 设备上安装并运行我们的应用,来检查它的功能是否正常。

    图6.2.1  实时测试结果

    图6.2.2  图片测试结果

  • 相关阅读:
    ES7~11学习48~68
    实变函数与泛函分析基础
    MT1283·区间Disarium数
    全网独家:编译CentOS6.10系统的openssl-1.1.1多版本并存的rpm安装包
    rust
    2023游戏开发制作如何选择合适的游戏引擎?看完本文就知道
    vue使用window.location.href 跳转失败
    3dmax如何制作模型走路动画
    IO进线程:进程间通信
    ssm基于微信小程序的警局服务管理系统
  • 原文地址:https://blog.csdn.net/r1832644594/article/details/134428700
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号