百度AI进阶实战营第九期:机械手抓取

简介: 百度AI进阶实战营第九期:机械手抓取

Day 0

第一步:创建Notebook模型任务

step1:进入BML主页,点击立即使用

🔗https://ai.baidu.com/bml/

图片

step2:点击Notebook,创建“通用任务”

图片

step3:填写任务信息

图片


第二步:下载任务操作模板

下载链接:https://aistudio.baidu.com/aistudio/datasetdetail/121560

图片

Day 1

第一步:配置Notebook

1.找到昨天创建的Notebook任务,点击配置

  • 开发语言:Python3.7
  • AI框架:PaddlePaddle2.0.0
  • 资源规格:GPU V100

图片

2.打开Notebook

图片

3.上传本次Notebook操作模型

若没来得及下载,请点击链接下载:https://aistudio.baidu.com/aistudio/datasetdetail/121560

图片

第二步:环境准备

1.安装paddlex

!pip install paddlex #安装paddlex

图片

图片

2.安装filelock

!pip install filelock #安装filelock

图片

3.将paddlepaddle升级至2.2.1版本

!pip install paddlepaddle-gpu==2.2.1.post101 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html #升级paadlepaddle-gpu

图片

图片

第三步:数据准备

1.下载数据集

!wget -P data/ https://bj.bcebos.com/paddlex/examples2/robot_grab/dataset_manipulator_grab.zip #下载数据集

图片

2.解压数据集

!cd 'data' && unzip -q dataset_manipulator_grab.zip #在data文件夹中解压数据集

图片

3.将数据集转换为MSCOCO格式

!paddlex --data_conversion --source labelme --to MSCOCO --pics data/dataset_manipulator_grab/JPEGImages --annotations data/dataset_manipulator_grab/Annotations --save_dir dataset

图片

图片

4.使用paddlex进行数据切分

将训练集、验证集和测试集按照7:2:1的比例划分

!paddlex --split_dataset --format COCO --dataset_dir dataset --val_value 0.2 --test_value 0.1

图片

图片

数据文件夹切分前后的状态如下:

  dataset/                      dataset/
  ├── JPEGImages/       -->     ├── JPEGImages/
  ├── annotations.json          ├── annotations.json
                                ├── test.json
                                ├── train.json
                                ├── val.json

第四步:保存Notebook并关闭、停止运行

图片

图片

Day 2

第一步:重新安装环境

1.启动Notebook并打开

图片

2.重新执行三条安装命令

图片

图片

图片

第二步:模型训练

1.调用paddlex

import paddlex as pdxfrom paddlex import transforms as T

图片

2.定义训练和验证时的transforms

API说明:https://github.com/PaddlePaddle/PaddleX/blob/release/2.0-rc/paddlex/cv/transforms/operators.py

train_transforms = T.Compose([    T.RandomResizeByShort(        short_sizes=[640, 672, 704, 736, 768, 800],        max_size=1333,        interp='CUBIC'), T.RandomHorizontalFlip(), T.Normalize(            mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])])
eval_transforms = T.Compose([    T.ResizeByShort(        short_size=800, max_size=1333, interp='CUBIC'), T.Normalize(            mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])])

图片

3.定义训练和验证所用的数据集

API:https://github.com/PaddlePaddle/PaddleX/blob/develop/paddlex/cv/datasets/coco.py#L26

train_dataset = pdx.datasets.CocoDetection(    data_dir='dataset/JPEGImages',    ann_file='dataset/train.json',    transforms=train_transforms,    shuffle=True)eval_dataset = pdx.datasets.CocoDetection(    data_dir='dataset/JPEGImages',    ann_file='dataset/val.json',    transforms=eval_transforms)

图片

4.初始化模型

可使用VisualDL查看训练指标,参考https://github.com/PaddlePaddle/PaddleX/tree/release/2.0-rc/tutorials/train#visualdl可视化训练指标

num_classes = len(train_dataset.labels)model = pdx.det.MaskRCNN(    num_classes=num_classes, backbone='ResNet50', with_fpn=True)

图片

5.训练参数配置,并开始训练

API说明:https://github.com/PaddlePaddle/PaddleX/blob/release/2.0-rc/paddlex/cv/models/detector.py#L155

各参数介绍与调整说明:https://paddlex.readthedocs.io/zh_CN/develop/appendix/parameters.html

model.train(    num_epochs=10,    train_dataset=train_dataset,    train_batch_size=1,    eval_dataset=eval_dataset,    learning_rate=0.00125,    lr_decay_epochs=[8, 11],    warmup_steps=10,    warmup_start_lr=0.0,    save_dir='output/mask_rcnn_r50_fpn',    use_vdl=True)

图片

图片

图片

第三步:保存Notebook并关闭、停止运行

图片

图片

Day 3

第一步:重新安装环境

1.启动Notebook并打开

图片

2.重新执行三条安装命令

图片

图片

图片

第二步:重新安装环境

import glob
import numpy as np
import threading
import time
import random
import os
import base64
import cv2
import json
import paddlex as pdx

image_name = 'dataset/JPEGImages/Image_20210615204210757.bmp'
model = pdx.load_model('output/mask_rcnn_r50_fpn/best_model')

img = cv2.imread(image_name)
result = model.predict(img)

keep_results = []
areas = []
f = open('result.txt', 'a')
count = 0
for dt in np.array(result):
    cname, bbox, score = dt['category'], dt['bbox'], dt['score']
    if score < 0.5:
        continue
    keep_results.append(dt)
    count += 1
    f.write(str(dt) + '\n')
    f.write('\n')
    areas.append(bbox[2] * bbox[3])
areas = np.asarray(areas)
sorted_idxs = np.argsort(-areas).tolist()
keep_results = [keep_results[k]
                for k in sorted_idxs] if len(keep_results) > 0 else []
print(keep_results)
print(count)
f.write("the total number is :" + str(int(count)))
f.close()
pdx.det.visualize(
    image_name, result, threshold=0.5, save_dir='./output/mask_rcnn_r50_fpn')

图片

图片

图片

第三步:保存Notebook并关闭、停止运行

图片

图片
完整的代码:
https://download.csdn.net/download/hhhhhhhhhhwwwwwwwwww/67332976

目录
相关文章
|
21天前
|
人工智能 API 开发工具
【重磅发布】 免费领取阿里云百炼AI大模型100万Tokens教程出炉,API接口实战操作,DeepSeek-R1满血版即刻体验!
阿里云百炼是一站式大模型开发及应用构建平台,支持开发者和业务人员轻松设计、构建大模型应用。通过简单操作,用户可在5分钟内开发出大模型应用或在几小时内训练专属模型,专注于创新。
474 88
【重磅发布】 免费领取阿里云百炼AI大模型100万Tokens教程出炉,API接口实战操作,DeepSeek-R1满血版即刻体验!
|
16天前
|
人工智能 编解码 算法
DeepSeek加持的通义灵码2.0 AI程序员实战案例:助力嵌入式开发中的算法生成革新
本文介绍了通义灵码2.0 AI程序员在嵌入式开发中的实战应用。通过安装VS Code插件并登录阿里云账号,用户可切换至DeepSeek V3模型,利用其强大的代码生成能力。实战案例中,AI程序员根据自然语言描述快速生成了C语言的base64编解码算法,包括源代码、头文件、测试代码和CMake编译脚本。即使在编译错误和需求迭代的情况下,AI程序员也能迅速分析问题并修复代码,最终成功实现功能。作者认为,通义灵码2.0显著提升了开发效率,打破了编程语言限制,是AI编程从辅助工具向工程级协同开发转变的重要标志,值得开发者广泛使用。
7887 68
DeepSeek加持的通义灵码2.0 AI程序员实战案例:助力嵌入式开发中的算法生成革新
|
2月前
|
人工智能 机器人 UED
不怕不会设计logo拉-本篇教你如何使用AI设计logo-如何快速用AI设计logo-附上AI绘图logo设计的咒语-优雅草央千澈-实战教程
不怕不会设计logo拉-本篇教你如何使用AI设计logo-如何快速用AI设计logo-附上AI绘图logo设计的咒语-优雅草央千澈-实战教程
166 86
不怕不会设计logo拉-本篇教你如何使用AI设计logo-如何快速用AI设计logo-附上AI绘图logo设计的咒语-优雅草央千澈-实战教程
|
1天前
|
人工智能 自然语言处理 前端开发
Spring AI与DeepSeek实战二:打造企业级智能体
本文介绍如何基于Spring AI与DeepSeek模型构建企业级多语言翻译智能体。通过明确的Prompt设计,该智能体能自主执行复杂任务,如精准翻译32种ISO标准语言,并严格遵循输入格式和行为限制。代码示例展示了如何通过API实现动态Prompt生成和翻译功能,确保服务的安全性和可控性。项目已开源,提供更多细节和完整代码。 [GitHub](https://github.com/zlt2000/zlt-spring-ai-app) | [Gitee](https://gitee.com/zlt2000/zlt-spring-ai-app)
53 11
|
1天前
|
人工智能 JavaScript 前端开发
【最佳实践系列】AI程序员让我变成全栈:基于阿里云百炼DeepSeek的跨语言公告系统实战
本文介绍了如何在Java开发中通过跨语言编程,利用阿里云百炼服务平台的DeepSeek大模型生成公告内容,并将其嵌入前端页面。
|
8天前
|
人工智能 Java API
Spring AI与DeepSeek实战一:快速打造智能对话应用
在 AI 技术蓬勃发展的今天,国产大模型DeepSeek凭借其低成本高性能的特点,成为企业智能化转型的热门选择。而Spring AI作为 Java 生态的 AI 集成框架,通过统一API、简化配置等特性,让开发者无需深入底层即可快速调用各类 AI 服务。本文将手把手教你通过spring-ai集成DeepSeek接口实现普通对话与流式对话功能,助力你的Java应用轻松接入 AI 能力!虽然通过Spring AI能够快速完成DeepSeek大模型与。
238 11
|
7天前
|
人工智能 运维 自然语言处理
通义灵码 AI实战《手把手教你用通义灵码写一个音乐电子小闹钟》
通义灵码DeepSeek版本相比qwen2.5,增强了深度思考和上下文理解能力,显著提升了开发效率,尤其适合代码能力较弱的运维人员,真正实现了“代码即服务”。
99 1
|
12天前
|
人工智能 安全 API
容器化AI模型的安全防护实战:代码示例与最佳实践
本文基于前文探讨的容器化AI模型安全威胁,通过代码示例展示如何在实际项目中实现多层次的安全防护措施。以一个基于TensorFlow的图像分类模型为例,介绍了输入验证、模型加密、API认证和日志记录的具体实现方法,并结合最佳实践,如使用安全容器镜像、限制权限、网络隔离等,帮助构建更安全的AI服务。
|
12天前
|
机器学习/深度学习 人工智能 Kubernetes
容器化AI模型部署实战:从训练到推理
在上一篇中,我们探讨了AI技术如何赋能容器化生态。本篇聚焦于AI模型的容器化部署,通过图像分类任务实例,详细介绍了从模型训练到推理服务的完整流程。使用PyTorch训练CNN模型,Docker打包镜像,并借助Kubernetes进行编排和部署,最终通过FastAPI提供推理服务。容器化技术极大提升了AI模型部署的便利性和管理效率,未来将成为主流趋势。
|
11天前
|
人工智能 自然语言处理 算法
国产AI如何卖爆海外,答案都在这场实战沙龙
国产AI如何卖爆海外,答案都在这场实战沙龙

热门文章

最新文章