ChatGPTを使用して安全ヘルメット着用検出プロジェクトを完全に自動的に開発する

ChatGPTを使用して安全ヘルメット着用検出プロジェクトを完全に自動的に開発する

こんにちは、みんな。

今日は、ChatGPT を使用して安全ヘルメットの着用検出を開発する方法を紹介します。コードはすべて GPT4 で書かれています。

まず、ChatGPT の役割を設定し、完了するタスクを伝え、ChatGPT に詳細な手順を実行させます。

写真

データの準備と注釈付け、モデルの選択と設計からモデルの展開まで、ChatGPT は非常に具体的で詳細かつ実行可能な手順を提供します。

ここでは、主にデータの準備とモデル選択のトレーニングに焦点を当てます。

自分でデータを収集してラベル付けするのが時間と手間がかかる場合は、ChatGPT に依頼して、既存のリソースがあるかどうかを調べることができます。

写真

彼は私たちのためにデータセットを直接見つけてくれたわけではありませんが、KaggleやGitHubなど、リソースを検索できるWebサイトを提供してくれました。

Kaggle と GitHub で検索したところ、すでにラベル付けされたデータセットを見つけることができました。最終的に、Kaggle のデータセットを選択しました。

写真

データセットには、ヘルメットを着用している状態とヘルメットを着用していない状態の 2 つのカテゴリが含まれており、注釈ファイルは PASCAL 形式です。

写真

データセットをダウンロードし、ChatGPTにアノテーションファイルを解析するコードを書かせ、元の画像にアノテーション結果を描画させます。

写真

コードは正しいです。入力ファイルのパスを変更するだけで、直接実行してマークされた検出ボックスを確認できます。

 import cv2 import xml.etree.ElementTree as ET import random # 随机生成一个颜色def random_color(): return (0, random.randint(0, 255), random.randint(0, 255)) # 读取PASCAL VOC格式的XML标注文件def read_annotations(xml_file): tree = ET.parse(xml_file) root = tree.getroot() boxes = [] for obj in root.iter('object'): name = obj.find('name').text xmlbox = obj.find('bndbox') x1 = int(xmlbox.find('xmin').text) y1 = int(xmlbox.find('ymin').text) x2 = int(xmlbox.find('xmax').text) y2 = int(xmlbox.find('ymax').text) boxes.append([name, x1, y1, x2, y2]) return boxes # 读取图片image_path = "./archive (1)/images/BikesHelmets38.png" # 更改为你的图片路径image = cv2.imread(image_path) # 读取标注xml_path = "./archive (1)/annotations/BikesHelmets38.xml" # 更改为你的XML文件路径annotations = read_annotations(xml_path) # 在图片上画出标注框for annotation in annotations: name, x1, y1, x2, y2 = annotation color = random_color() cv2.rectangle(image, (x1, y1), (x2, y2), color, 2) cv2.putText(image, name, (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, color, 1) # 显示图片cv2.imshow('Annotated Image', image) cv2.waitKey(0) cv2.destroyAllWindows()

写真

このデータセットを使って、ChatGPTで適切なモデルを選択することができます。

写真

写真

いくつかの比較を行った後、ChatGPT は最終的に YOLO を選択しました。

ただし、データセットのアノテーション ファイルは PASCAL 形式であるため、ChatGPT で YOLO 形式に変換する必要もあります。

写真

スペースを節約するため、コードは掲載しません。ここで、ChatGPT は変換の例として 1 つのファイルのみを使用します。また、ChatGPT にディレクトリをトラバースしてバッチ変換を実行するプログラムを作成させることもできます。

この時点で、データセットは完全に準備されており、残っているのは ChatGPT モデルをトレーニングすることだけです。

写真

当初、ChatGPT は YOLO ネットワーク アーキテクチャを自分で作成していました。彼がそれを十分に理解できず、バグのデバッグに私が丸一日同行しなければならないかもしれないと考えました。そこで、オープンソース ソリューションに変更するように依頼し、YOLOv5 を選択しました。

依存関係をインストールし、yaml ファイルを構成し、トレーニング コマンドを 3 つのステップで実行します。

ChatGPT に事前にカテゴリの数を伝えなかったため、生成された YAML 設定ファイルのデフォルト カテゴリは 1 になっています。これは、自社の業務に合わせて柔軟に調整できます。

トレーニングコマンドに問題はありません。事前トレーニング済みモデルとして yolov5s モデルを使用します。コマンドを実行すると、yolov5s.pt が自動的にダウンロードされます。すでにダウンロードしている場合は、--weights パラメータでローカルの重みファイルを追加できます。

モデルのトレーニングが完了したら、トレーニング結果を表示できます。

写真

最後に、ChatGPT に推論コードを生成させて適用します。

写真

写真

ChatGPT によって生成されたコードは基本的にそのまま使用できますが、より効率的に使用するには、ディープラーニングに関する知識を理解する必要があります。そうしないと、エラーが報告された後、それを直接 ChatGPT に投稿すると、どんどん道を踏み外してしまう可能性が高くなります。

<<: 

>>:  ChatGPTでユーザーは何をするのでしょうか?プログラミングは30%を占めています。数千万人のユーザーを分析すると答えが見つかります

ブログ    
ブログ    
ブログ    

推薦する

トヨタがAIを活用して融資判断をスピードアップする方法

[[431125]]自動車金融サービスの分野では、ディーラーと顧客が意思決定のスピードを追求していま...

基数ソートのヒント 1 つ、ソート方法 2 つ、ソートアルゴリズム 3 つ

[[421174]]基数ソートコンセプト基数ソートは、整数をビットごとにソートする非比較整数ソート ...

Baidu Create 2019 Baidu AI 開発者カンファレンス Li Yanhong の素晴らしい名言

7月3日に開催されたBaidu Create 2019 Baidu AI Developer Con...

マイクロソフトは、対話してマルチモーダルコンテンツを生成できる AI モデル CoDi をリリースしました。

マイクロソフトは 7 月 11 日にプレスリリースを発行し、Combinable Diffusion...

...

2024年のデジタル変革のトレンド

AI と自動化が進歩するにつれて、企業は人間的なタッチを維持しながらこれらのツールを最も効果的に活用...

ツール・ド・フランスがChatGPTとデジタルツイン技術を導入

6月30日のニュースによると、ツール・ド・フランスは世界で最も権威のある自転車レースの一つで、毎年何...

米上院司法委員会公聴会:AIは制御が難しく、悪意のある者が生物兵器の開発に利用する可能性がある

海外メディアTechCrunchによると、7月26日、米上院司法委員会は昨日、人工知能に関する公聴会...

機械学習で避けるべき3つの落とし穴

[[274438]]機械学習の分野は数十年にわたって「タンク問題」に悩まされてきました。この話は 1...

汎用人工知能の実現に私たちはどれくらい近づいているのでしょうか?

今日、人工知能は人間が行う作業の一部をより良く行うために懸命に取り組んでいます。たとえば、AI は人...

因果関係に着想を得た解釈可能なフレームワーク:大規模モデルを説明する効率的な方法

大規模モデルの背後にある科学をより深く理解し、その安全性を確保するためには、解釈可能性がますます重要...

SCO Unix ディスク ブロック割り当てアルゴリズム

私は Unix オペレーティング システムに関する知識を頻繁に学んでおり、Unix オペレーティング...

デジタルマーケティングにおけるAI革命

ほんの数年前までは、マーケティングに特化した AI エンジンがマーケティングの未来につながると信じて...

...

...