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

Hough Transform

ハフ変換は、画像のエッジに隙間やノイズがあっても、線、円、図形を検出する投票ベースのコンピュータービジョン技術です。

ハフ変換は、画像上の点に形状候補への投票を行わせることで、線、円、その他のパラメーター化された形状を検出する幾何学的な特徴抽出技術です。同じ構造に属する点は互いを補強し、投票テーブルに強いピークを形成します。コンピュータービジョンでは、この手法によって、隙間やノイズのある境界を持つ形状を復元できます。

Paul V. C. Houghは、物理学の写真に写る粒子の軌跡に対処するため、1959年に泡箱写真の機械解析でこの手法を紹介しました。Richard DudaとPeter Hartは、広く使われている角度と距離による表現を、1972年の直線・曲線検出に関する論文で紹介しました。

ハフ投票の仕組み#

一般的なワークフローは、データの前処理とエッジ検出から始まります。エッジ検出器は局所的な輝度の変化を特定し、ハフ変換はエッジピクセルを幾何学的構造にまとめます。Sobelオペレーターは輝度勾配を推定し、Cannyは線の投票に適した細いエッジマップを生成します。

候補となる各直線は、画像原点からの符号付き垂直距離であるrhoと、その垂線がx軸となす角度であるthetaで表されます。この表現により、傾きが無限大になる垂直線も扱えます。すべてのエッジピクセルは、パラメーター空間を離散的なビンに分割したテーブルであるアキュムレーター内の、対応するrho–thetaの組に投票します。画像上で離れていても、同一直線上のピクセルは同じビンに寄与します。ピークが、支持される直線を特定します。

出力は幾何形状と投票ルールによって決まります。ディープラーニングの検出器はトレーニングデータから視覚パターンを学習します。一方、ハフ検出では、学習済みのモデルの重みではなく、選択した形状モデルと数値しきい値を使用します。

標準、確率的、円形の変換#

一般的な3つの実装は、探索方法と出力が異なります。

  • 標準直線変換: cv2.HoughLines()は、無限直線を表すrho–thetaの組を返します。線分の端点を得るには、追加の処理が必要です。
  • 確率的直線変換: cv2.HoughLinesP()は、点のサンプリングによって投票処理を減らし、線分の端点を直接返します。minLineLengthは短い線分を除外し、maxLineGapは、一直線に並んだ部分を結合する際に許容する間隔を指定します。
  • 円変換: 円候補の検出には、中心と半径が必要です。cv2.HoughCircles()は勾配ベースの手法を使用し、半径の範囲を指定して探索範囲を絞ります。入力にはグレースケール画像を使用しますが、直線用の関数には二値画像を使用します。

Pythonで線分を検出する#

pip install opencv-python numpyで依存関係をインストールします。この例ではOpenCVを使用して、バスのサンプル画像から線分を検出し、描画します。

from urllib.request import urlopen

import cv2
import numpy as np

with urlopen("https://ultralytics.com/images/bus.jpg") as response:
    encoded = np.frombuffer(response.read(), dtype=np.uint8)
image = cv2.imdecode(encoded, cv2.IMREAD_COLOR)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 投票用にエッジを抽出します。
edges = cv2.Canny(gray, 50, 150)
# アキュムレーターの投票で支持される有限長の線分を検出します。
lines = cv2.HoughLinesP(
    edges,
    1,
    np.pi / 180,
    threshold=80,
    minLineLength=80,
    maxLineGap=10,
)
if lines is not None:
    for x1, y1, x2, y2 in lines[:, 0]:
        cv2.line(image, (x1, y1), (x2, y2), (0, 0, 255), 2)
cv2.imwrite("hough_segments.jpg", image)

保存した画像には、検出された線分が赤で重ねて表示されます。rhoのビン幅は1ピクセル、thetaのビン幅は1度で、threshold=80はアキュムレーターの投票しきい値を設定します。線分の長さと間隔の設定値はピクセル単位です。

用途と実用上の制限#

文書処理では、グリッド線の抽出が構造解析に役立ちます。OpenCVでは、数独画像を使ったハフ検出の例を紹介しています。円形投票は、scikit-imageの円と楕円の例で、コインの中心と半径の特定に使用されています。これらの出力が示すのは幾何形状です。物体検出では意味カテゴリが追加され、インスタンスセグメンテーションではピクセルが個々の物体に割り当てられます。

鋼材梁の寸法測定プロトタイプでは、YOLOv8のマスク、Cannyのエッジ、確率的ハフ直線を組み合わせて、コーナーの抽出を支援します。Ultralytics YOLO26のセグメンテーションは、物体の分離に使うマスクを提供するため、同じマスク入力の手法を適用してから、個別に幾何学的な処理を行えます。

アキュムレーターのビンを細かくするとメモリ使用量が増え、粗くすると近接する候補が統合されます。テーブル境界の抽出では、境界が不完全だと検出可能な境界が減る一方、無関係な線によって境界の補正を誤ることがあります。maxLineGapを大きくすると、一直線に並んだ部分間のより大きな隙間をつなぎ、minLineLengthを大きくすると、より短い線分が除外されます。

ソリューションを見る

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

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

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の未来を一緒に築きましょう!

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