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%を占めています。数千万人のユーザーを分析すると答えが見つかります

ブログ    
ブログ    

推薦する

...

もしかしたら「スパイ」していたのかもしれません!大規模モデルのプライバシー推論精度は 95.8% です。

Reddit のユーザーが通勤に関するステータスを投稿しました。通勤途中に、曲がり角を待つ厄介な交...

...

スーパーマリオをプレイする3本の機械指がサイエンス誌に掲載された

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

ビジネスニーズに基づいて AI ソリューションを選択するにはどうすればよいでしょうか?

現在、企業では人工知能(AI)をますます幅広く活用しており、自動化する傾向もあります。既存のデータ開...

知能ロボットは世界経済を書き換えるだろうが、全てが良いわけではない

高度に自動化された社会では、人々の反復的な労働のレベルは最小限に抑えられています。人件費が高い分野で...

Baidu Brainは、顔をスキャンしてWeChat Momentsで拡散できるAIベースの春節連句をサポート

大晦日、家族が集まる夜。 1月28日、オンライン春節祝賀会(略称オンライン春節祝賀会)が予定通り開催...

...

人工知能、自動化、そして仕事の未来: 答えが必要な 10 の質問!

[[264418]]職場で機械が人間の労働に取って代わるようになるにつれ、私たち全員が機械から利益...

自然言語処理(NLP)はソーシャルエンジニアリング攻撃の解決に役立ちます

新しいツールは、件名や URL に基づいてソーシャル エンジニアリング攻撃を検出するのではなく、テキ...

5 つの主要分野をカバーする、知っておくべき 21 のオープンソース機械学習ツール

この記事では、まだ使ったことがないかもしれないオープンソースの機械学習ツールを21個紹介します。各オ...

...

...

知っておくべき人工知能アルゴリズム トップ 10

人工知能 (AI) 技術の人気が高まるにつれ、さまざまなアルゴリズムがこの分野の発展を促進する上で重...

ChatGPT を助手席に乗せましょう!清華大学、中国科学院、MITが共同でCo-Pilotヒューマン・コンピュータ・インタラクション・フレームワークを提案:乗客の意図を完璧に制御

今年の人工知能分野における最も重要なブレークスルーの一つとして、大規模言語モデルの研究は常に主要な関...