深度学习之检测苹果、橙子和香蕉并语音输出结果(Python+PaddleDetection)

我目前在学习百度的深度学习框架----paddlepaddle,在平台上运行出结果是比较简单的,因为有算力的支持,一个模型能很快地训练出来.

大家可以在AI Studio上FORK这个项目,下载数据集和代码:深度学习之检测苹果、橙子和香蕉并语音输出结果(Python+PaddleDetection)_第1张图片
但是我想检验一下学习的效果如何,于是我尝试着在我自己的电脑上运行一个目标检测的项目,大家也可以通过以下代码来下载数据集:

import sys
import os.path as osp
import logging

DATASETS = {
    'fruit': ([(
        'https://dataset.bj.bcebos.com/PaddleDetection_demo/fruit-detection.tar',
        'ee4a1bf2e321b75b0850cc6e063f79d7', ), ], ["fruit-detection"]),
}

def download_dataset(path, dataset=None):
    if dataset not in DATASETS.keys():
        logger.error("Unknown dataset {}, it should be "
                     "{}".format(dataset, DATASETS.keys()))
        return
    dataset_info = DATASETS[dataset][0]
    for info in dataset_info:
        get_path(info[0], path, info[1], False)
    logger.info("Download dataset {} finished.".format(dataset))

logging.basicConfig(level=logging.INFO)
download_path = osp.split(osp.realpath(sys.argv[0]))[0]
download_dataset(download_path, 'fruit')

飞桨(PaddlePaddle)是国际领先的端到端开源深度学习平台,集深度学习训练和预测框架、模型库、工具组件和服务平台为一体,拥有兼顾灵活性和高性能的开发机制、工业级的模型库、超大规模分布式训练技术、高速推理引擎以及系统化的社区服务等五大优势,致力于让深度学习技术的创新与应用更简单。

今天的内容需要用到paddlepaddle,大家可以到官网上下载安装:
https://www.paddlepaddle.org.cn/

安装好以后,就可以在本地运行项目了,由于在本地运行,我需要在cli.py里配置一下网络:
深度学习之检测苹果、橙子和香蕉并语音输出结果(Python+PaddleDetection)_第2张图片

该项目默认使用GPU,然而,我的电脑没有GPU…

所以它报错了:
深度学习之检测苹果、橙子和香蕉并语音输出结果(Python+PaddleDetection)_第3张图片
所以我们来到yolov3_mobilenet_v1_fruit.yml这个文件里改一下配置:
深度学习之检测苹果、橙子和香蕉并语音输出结果(Python+PaddleDetection)_第4张图片
我们还需要改一下一些文件的路径:
深度学习之检测苹果、橙子和香蕉并语音输出结果(Python+PaddleDetection)_第5张图片
把anno_file改成本地的地址
深度学习之检测苹果、橙子和香蕉并语音输出结果(Python+PaddleDetection)_第6张图片
开始训练!在百度云的服务器上跑这个程序,大概只需要12分钟,而在本地使用cpu跑的时候,速度很慢…
深度学习之检测苹果、橙子和香蕉并语音输出结果(Python+PaddleDetection)_第7张图片
太慢了…

当然,paddlepaddle还有一个更快的方式,可以用paddlehub上直接下载模型文件,以下是yolov3_coco2017

使用方法特别简单:

import paddlehub as hub

yolov3 = hub.Module(name="yolov3_coco2017")

test_img_path = "/Users/Administrator/Desktop/apple_demo.jpg"

# set input dict
input_dict = {"image": [test_img_path]}

# execute predict and print the result
results = yolov3.object_detection(data=input_dict)
for result in results:
    print(result['path'])
    print(result['data'])

这是任选的两张待测试图片(训练的图片):
深度学习之检测苹果、橙子和香蕉并语音输出结果(Python+PaddleDetection)_第8张图片
深度学习之检测苹果、橙子和香蕉并语音输出结果(Python+PaddleDetection)_第9张图片
以下是非训练/验证的图片:
深度学习之检测苹果、橙子和香蕉并语音输出结果(Python+PaddleDetection)_第10张图片
这是我自己拍的照片,效果不是很好.

当然,做到这一步还远远不够,2019年12月7日,我参加了华为云DevRun Summit: Login 2020,大会上Android无障碍工程师吴益明让我感触很深,他说:“视障不是Bug,只是一个Runtime。”

深度学习之检测苹果、橙子和香蕉并语音输出结果(Python+PaddleDetection)_第11张图片
信息无障碍研究会高级信息无障碍工程师 吴益明
(图片源自公众号: 华为云和TA的朋友们)

作为一名开发者,我开始考虑,如何通过我做的程序,让1700万障碍人群摆脱束缚,享受平等自由的世界,因此,我做了一个小小的语音合成demo:

import win32com.client

speaker = win32com.client.Dispatch("SAPI.SpVoice")
text = "输入要语音合成的内容"
speaker.Speak(text)

短短四行代码,其实就能实现这一功能,以下是测试效果,我做成了一个视频:

http://v.youku.com/v_show/id_XNDQ2MjE3ODcxNg==.html?x&sharefrom=android&sharekey=c6c402add1dd93cf170f7116753c75cc2

但是,这还远远不够…

当前,技术的颠覆性发展不断激励开发者们打破故有的思维方式和商业模式,以5G、云和AI为锚点,探索技术与行业的无缝结合。作为一名开发者,我会尽我所能,构建万物互联的智能世界,为盲人朋友带来福音。

你可能感兴趣的:(深度学习)