Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics YOLO

Ultralyticsのオープンソースプロジェクトへの貢献を始めるためのヒント

Ultralyticsのオープンソースプロジェクトへの貢献方法と、ドキュメント作成、PRのレビュー、必須ツールの使用に関する役立つヒントをご紹介します。

Abirami VinaAbirami Vina9 分で読めます
Ultralyticsのオープンソースプロジェクトに貢献する理由

オープンソースソフトウェアの基盤は、協力、学習、共有です。オープンソースプロジェクトは、人々が集まり、自分たちを超えるものを築くための優れた方法です。Ultralyticsはオープンソースの理念を大切にしており、皆さまがオープンソースプロジェクトに貢献することを常に歓迎しています。

ドキュメントの執筆、コードレビュー、課題への対応などを通じて貢献したいものの、何から始めればよいか分からない場合や、問題に直面している場合は、開始をサポートします。この記事では、Ultralyticsのオープンソースプロジェクトへの貢献を始めるためのヒントをいくつか紹介します。

Ultralyticsコミュニティからの貢献の重要性#

貢献方法を見る前に、貢献がなぜ重要なのかを考えてみましょう。私たちは、Ultralyticsコミュニティからの貢献が重要だと強く考えています。オープンソースプロジェクトに参加することは、より優れたソフトウェアの開発を支援するだけではありません。コントリビューターは、テクノロジーをオープンで協調的かつ継続的に進化させるうえで、重要な役割を果たします。皆さんの貢献によって、世界中のユーザーや開発者にとってプロジェクトが活気を保ち、利用しやすく、有益なものになります。

ソフトウェア開発にとどまらず、Ultralyticsのプロジェクトへの貢献は、皆さん自身の成長にもつながる素晴らしい機会です。経験豊富な開発者と協力し、助言やベストプラクティスを学びながら、コーディング、問題解決、チームワークのスキルを伸ばせます。皆さんの取り組みは、世界中の何千人もの人々が使うツールに実質的な影響を与えます。コミュニティへの参加は、仕事上のネットワークを広げ、新たな機会を切り開き、ポートフォリオを充実させて、採用担当者に強くアピールする助けにもなります。

オープンソースプロジェクトに貢献する理由

図1. 貢献する理由。画像:著者。

Ultralyticsのオープンソースプロジェクトへの貢献を始める方法#

まずはUltralytics公式の貢献ガイドをご覧ください。貢献を最大限に活かすためのベストプラクティスやヒントが満載です。最初のステップとして、貢献ガイドラインを理解し、コントリビューターライセンス契約(CLA)に署名して、コードを詳しく確認しながら、プロジェクトにすでに含まれているものを把握しましょう。

開発に貢献したい場合も、最新のコードを確認したいだけの場合も、次のステップはUltralyticsリポジトリをクローンすることです。クローンしたら、プロジェクトディレクトリに移動し、以下のコードスニペットに示すように、パッケージを編集可能モードでインストールできます。

git clone https://github.com/ultralytics/ultralytics.git
cd ultralytics
pip install -e .

サポートが必要な場合は、クイックスタートガイドに、スムーズに始めるために必要な情報がすべて記載されています。

貢献できるさまざまな分野#

環境をセットアップしてプロジェクトについて理解したら、有意義な貢献ができるさまざまな分野を探してみましょう。Ultralyticsではいくつもの参加方法が用意されており、スキルや関心に応じて貢献の仕方を選べます。

選択肢をいくつかご紹介します。

  • ドキュメント:ドキュメントへの貢献は、文章作成のスキルを磨きながらプロジェクトに深く関わるための優れた方法です。既存のドキュメントの改善、不足している詳細の追加、他の人が貢献しやすくなる新しいガイドの作成などを通じて支援できます。
  • バグ修正:コーディングの経験がある場合は、バグ修正に取り組むことを検討してください。小さな調整からより複雑な問題までさまざまで、プロジェクトに目に見える形で貢献できます。
  • 機能強化: さらに深く取り組みたい方にとって、機能強化は難しい一方でやりがいのある取り組みです。新機能の追加、既存機能の改善、プロジェクトのロードマップへの取り組みなどが含まれます。
  • プルリクエストのレビュー: プルリクエストのレビューも、価値ある貢献方法の一つです。特に、プロジェクトの標準やベストプラクティスに詳しい方に適しています。フィードバックを提供し、改善を提案することで、コードベースの品質と整合性の維持に役立ちます。
  • コミュニティでのディスカッション: コラボレーションやアイデアの共有を楽しめる方にとって、コミュニティでのディスカッションへの参加は優れた貢献方法です。進行中の会話に参加したり、新しいアイデアを提案したり、知見や解決策を共有して他の人を支援したりできます。

これらの領域にはそれぞれ独自の貢献方法があり、自分の強みや関心に最も合ったものを選べます。どんなに小さな貢献でも、Ultralyticsの成長と進化を支える重要な役割を果たします。

成長を続けるコミュニティでは、すべての貢献が大切にされています

図2. 成長を続けるコミュニティでは、すべての貢献が大切にされています。画像出典: Envato Elements。

Ultralyticsのオープンソースドキュメントへの貢献#

Ultralyticsのドキュメントに貢献する際は、既存のドキュメントを確認し、改善が必要な領域を示す課題やディスカッションがないかを確認してください。そうすることで、最も必要とされている箇所に貢献を集中できます。

ドキュメントを執筆または編集する際は、一貫性を保つためにプロジェクトのガイドラインに従うことが重要です。書式に関するヒントをいくつか紹介します。

  • 必ずMarkdown形式を使用してください。
  • 各ドキュメントの冒頭には明確な導入を置き、簡潔でわかりやすい表現を心がけてください。
  • リストには箇条書きを使い、リンクには内容がわかる説明文を付け、ページをすばやく読み込めるよう画像は1 MB未満にしてください。
  • 書式について疑問がある場合は、以前のドキュメントがどのように書式設定されているかを確認すると、簡単に照合できます。

Markdown形式と最終的に表示されたドキュメント

図3. Markdown形式の例(左)と、最終的に表示されたドキュメント(右)。画像提供: 著者。

下書きができたら、ドキュメントをローカルでビルドしてプレビューすることが重要です。提出前に問題を見つけることができます。そのために、まずリポジトリをクローンし、プロジェクトディレクトリに移動します。

git clone https://github.com/ultralytics/ultralytics.git
cd ultralytics

次に、必要な依存関係をインストールします。

pip install -e ".[dev]"

最後に、ドキュメントをビルドしてローカルで表示し、変更内容を確認します。

python docs/build_docs.py
python -m http.server --directory site

ウェブブラウザーでhttp://127.0.0.1:8000/にアクセスすると、ローカルでビルドされたドキュメントを確認できます。

明瞭さ、正確さ、一貫性を確認したら、作成したドキュメントの内容を明確に説明してプルリクエストを提出できます。ドキュメントの内容に最も適した場所に基づいて、適切なセクション(ガイド、ソリューション、インテグレーションなど)に配置してください。また、該当するセクションのindex.mdファイルと、全体のmkdocs.ymlファイルも確認し、必要に応じて更新してください。細部に注意を払うことで、レビューが円滑に進み、貢献内容がプロジェクトに適切に組み込まれます。

オープンソースコードに貢献する際に留意すべき点#

Ultralyticsプロジェクトにコードを貢献する際は、コードをクリーンで保守しやすく、統合しやすい状態にするためのベストプラクティスに従うことが重要です。以下に、覚えておきたいポイントを紹介します。

  • コードの重複を避ける: 可能な限り既存のコードを再利用し、不要な引数を最小限に抑えてください。
  • 変更は小さく、対象を絞る: 大規模な変更ではなく、小規模で対象を絞った変更に集中してください。
  • コードを簡素化または削除する: コードを簡素化したり、不要な部分を削除したりできる箇所を探してください。
  • 効果的なdocstringを書く: コードの動作を明確に説明し、関連リソースへのリンクを追加してください。
  • 不要な依存関係を避ける: 依存関係を追加するのは、本当に必要な場合に限ってください。

ソースコードのドキュメント作成に関するベストプラクティス

図4. ソースコードのドキュメント作成に関するベストプラクティス。

コードベースの長期的な保守性を考慮することも不可欠です。変更を加える前に、その変更によってUltralyticsを使用している既存のコードが壊れる可能性があるか、自問してください。可能性がある場合は、対処方法を検討し、変更にできる限り互換性を持たせてください。

貢献するコードを書き終えたら、テストが必要です。pytestなどのフレームワークを使い、変更を提出する前にテストできます。コードフォーマットを一貫させることも、貢献における非常に重要な要素です。Ruffなどのツールは、スタイルの一貫性を保ち、よくあるエラーや不整合を見つけるのに役立ちます。

プルリクエストのレビュー#

プルリクエスト(PR)のレビューは、優れた貢献方法です。誰かが変更をメインプロジェクトにマージするよう依頼すると、PRが作成されます。PRはUltralyticsプロジェクトの円滑な運営に役立ちます。PRをレビューする際は、変更が行われた理由を理解してください。作成者は更新の目的と利点を明確に説明し、PRには十分なテストを実施した証拠が示されている必要があります。

プルリクエストとは何かを説明する図

図5. プルリクエストとは何ですか?

確認すべき主な点をいくつか見ていきましょう。

  • ユニットテストを確認する: 新機能や変更に対するテストがPRに含まれていることを確認し、コードが想定どおりに動作し、問題を引き起こさないことを確かめてください。
  • ドキュメントの更新を確認する: 例、APIリファレンス、その他の関連情報を含め、変更や新機能を反映するようにドキュメントが更新されていることを確認してください。
  • パフォーマンスへの影響を評価する: 変更がパフォーマンスに与える影響を検討してください。必要に応じて、パフォーマンスベンチマークや追加テストを依頼してください。
  • CIテストを確認する: コードの書式チェックやユニットテストの結果を含め、すべての継続的インテグレーション(CI)テストが成功していることを確認してください。
  • 修正に協力する: テストが失敗した場合は、PRを承認する前に作成者と協力して問題を解決してください。

レビュアーは、問題や懸念点について具体的で明確なフィードバックを提供してください。改善案を示し、執筆者が潜在的な問題を検討できるように質問しましょう。コーディング、テスト、ドキュメント作成でベストプラクティスに従うよう促し、役立つリソースがあれば積極的に紹介してください。最後に、執筆者の努力を必ず認めましょう。肯定的なフィードバックは、オープンソースコミュニティの友好的で協力的な雰囲気を保つのに役立ちます。

貢献はコミュニティが大切です#

Ultralyticsのようなオープンソースプロジェクトへの貢献は、コミュニティの一員であることを実感できる素晴らしい機会です。コードの執筆、PRのレビュー、ドキュメントの更新、議論への参加など、どのような取り組みもプロジェクトの成長と進化につながります。GitHub、Discord、Redditなどのフォーラムで課題に回答したり会話に参加したりすることも、貢献し、他の人々とつながる有意義な方法です。どんなに小さな貢献でも大きな影響をもたらし、関わるすべての人にとって協力的で支え合える環境づくりに役立ちます。

Ultralyticsは、オープンソースコミュニティのイノベーション推進に力を注いでいます。最新の開発情報は、GitHubリポジトリでご確認ください。活気あるコミュニティに参加して、農業や製造業など、さまざまな業界に広がる取り組みをご覧ください。

執筆者

Abirami Vina
Abirami Vina

コンテンツクリエイター · Ultralytics

コンピュータービジョンエンジニアとしてキャリアをスタートさせたAbirami Vinaは、ビジョンAIと機械学習の強固な基盤を築きました。Ultralyticsのコンテンツクリエイターであり、Scribe of AIの創設者兼チーフライターとして、AIに特化した企業向けの高品質な技術コンテンツを制作しています。AIを理解しやすく魅力的なものにするという情熱に基づき、最先端のテクノロジーと実社会への影響をつなぐ仕事に取り組んでいます。

コメント

質問したり、結果を共有したり、ほかの人をサポートしたりできます。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう