(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024009979
(43)【公開日】2024-01-23
(54)【発明の名称】卵分類装置、卵分類方法及びコンピュータプログラム
(51)【国際特許分類】
G01N 21/27 20060101AFI20240116BHJP
A01K 43/04 20060101ALI20240116BHJP
G06F 16/55 20190101ALI20240116BHJP
【FI】
G01N21/27 A
A01K43/04
G06F16/55
【審査請求】有
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2023178269
(22)【出願日】2023-10-16
(62)【分割の表示】P 2019046262の分割
【原出願日】2019-03-13
(71)【出願人】
【識別番号】597017812
【氏名又は名称】株式会社ナベル
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】樫森 亜由子
(72)【発明者】
【氏名】才田 和輝
(72)【発明者】
【氏名】籾井 山太
(57)【要約】
【課題】卵を従来よりも適切に分類することを可能にする卵分類装置、卵分類方法及びコンピュータプログラムを提供する。
【解決手段】卵分類装置は、卵を撮影した画像を表す画像データを取得する画像データ取得部と、卵の状態を表す情報及び前記卵についての画像データを含む教師データを用いて学習された学習モデルによって、前記画像データ取得部が取得した画像データに応じて、卵の状態を判定する第1判定部と、卵の状態の判定結果に応じて、卵の分類先を決定する決定部とを備える。
【選択図】
図7
【特許請求の範囲】
【請求項1】
卵を分類する卵分類装置において、
卵を撮影した画像を表す画像データを取得する画像データ取得部と、
卵の状態を表す情報及び前記卵についての画像データを含む教師データを用いて学習された学習モデルによって、前記画像データ取得部が取得した画像データに応じて、卵の状態を判定する第1判定部と、
卵の状態の判定結果に応じて、卵の分類先を決定する決定部と
を備えることを特徴とする卵分類装置。
【請求項2】
卵を分類する卵分類方法において、
卵を撮影した画像を表す画像データを取得し、
卵の状態を表す情報及び前記卵についての画像データを含む教師データを用いて学習された学習モデルによって、取得した画像データに応じて、卵の状態を判定し、
卵の状態の判定結果に応じて、卵の分類先を決定すること
を特徴とする卵分類方法。
【請求項3】
コンピュータに、卵を分類するための処理を実行させるコンピュータプログラムにおいて、
卵を撮影した画像を表す画像データ及び前記卵の状態を表す情報を含む教師データを用いて学習された学習モデルによって、取得された画像データに応じて、卵の状態を判定するステップと、
卵の状態の判定結果に応じて、卵の分類先を決定するステップと、
を含む処理を実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、卵を分類する卵分類装置、卵分類方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
卵殻を有する卵は、集荷された後、洗浄され、大きさに応じて分類され、容器に収容され、出荷される。以下、卵殻を有する卵を単に卵と言う。卵は、例えば、鶏卵である。卵には、鶏卵以外の卵殻を有する卵も含まれ得る。卵は、出荷前に、汚れの有無、汚れの程度、卵殻の破損の有無、及び破損の程度が検査される。また、卵が血卵、みだれ卵、無黄卵又は腐敗卵等の内部異常卵であるか否かが検査される。検査の結果に応じて、卵は出荷前に分類される。例えば、卵殻が破損した卵、及び洗浄後も卵殻に汚れが付着している卵は、別の出荷先用の卵等、破損及び汚れの無い卵とは別の分類先に分類される。卵の検査を行うために、種々の装置が開発されている。特許文献1には、卵を撮影した画像に基づいて卵殻の汚れの有無を判定する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
卵殻の色は同一ではなく、白色又は褐色等、種々の色を有する卵がある。また、卵には、破損又は汚れとは異なる模様又は突起物を有するものがある。卵を分類する際には、これらの種々の卵が混在することがあり、卵の画像に基づいて卵を正確に検査して分類することが困難になることがある。
【0005】
本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、卵を従来よりも適切に分類することを可能にする卵分類装置、卵分類方法及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0006】
本発明に係る卵分類装置は、卵を分類する卵分類装置において、卵を撮影した画像を表す画像データを取得する画像データ取得部と、卵の状態を表す情報及び前記卵についての画像データを含む教師データを用いて学習された学習モデルによって、前記画像データ取得部が取得した画像データに応じて、卵の状態を判定する第1判定部と、卵の状態の判定結果に応じて、卵の分類先を決定する決定部とを備えることを特徴とする。
【0007】
本発明に係る卵分類装置は、前記判定結果は、卵殻の破損の程度、卵殻の汚れの程度、又は卵殻の汚れの種類を表すことを特徴とする。
【0008】
本発明に係る卵分類装置は、前記画像データ取得部は、容器に収容された状態の卵を撮影した画像を表す画像データを取得し、前記判定結果は、卵殻の破損の程度、卵殻の汚れの程度、又は卵殻の汚れの種類を表すことを特徴とする。
【0009】
本発明に係る卵分類装置は、前記第1判定部が判定した卵の状態を表す情報を出力する出力部を更に備えることを特徴とする。
【0010】
本発明に係る卵分類装置は、予め定められたルールに基づいて、前記画像データ取得部が取得した画像データに応じて、卵の状態を判定する第2判定部を更に備え、前記決定部は、前記第1判定部による判定結果及び前記第2判定部による判定結果に応じて、卵の分類先を決定することを特徴とする。
【0011】
本発明に係る卵分類装置は、状態が判明している卵について、状態を表す情報を受け付ける受付部と、同一の卵について前記画像データ取得部が取得した画像データ及び前記受付部が受け付けた前記情報を含むデータを教師データとして、前記学習モデルの再学習を行う再学習部とを更に備えることを特徴とする。
【0012】
本発明に係る卵分類装置は、品質を指定する情報を取得する第1情報取得部と、取得した前記情報に応じて、前記第1判定部で用いるべき学習モデルを複数の学習モデルの中から選択するか、又は前記決定部で前記判定結果に応じて卵の分類先を決定する基準を調整する第1調整部を更に備えることを特徴とする。
【0013】
本発明に係る卵分類装置は、推定される産卵からの経過時間を表す情報を取得する第2情報取得部と、取得した前記情報に応じて、前記第1判定部で用いるべき学習モデルを複数の学習モデルの中から選択するか、又は前記決定部で前記判定結果に応じて卵の分類先を決定する基準を調整する第2調整部を更に備えることを特徴とする。
【0014】
本発明に係る卵分類方法は、卵を分類する卵分類方法において、卵を撮影した画像を表す画像データを取得し、卵の状態を表す情報及び前記卵についての画像データを含む教師データを用いて学習された学習モデルによって、取得した画像データに応じて、卵の状態を判定し、卵の状態の判定結果に応じて、卵の分類先を決定することを特徴とする。
【0015】
本発明に係るコンピュータプログラムは、コンピュータに、卵を分類するための処理を実行させるコンピュータプログラムにおいて、卵を撮影した画像を表す画像データ及び前記卵の状態を表す情報を含む教師データを用いて学習された学習モデルによって、取得された画像データに応じて、卵の状態を判定するステップと、卵の状態の判定結果に応じて、卵の分類先を決定するステップと、を含む処理を実行させることを特徴とする。
【0016】
本発明においては、卵分類装置は、卵を撮影した画像を表す画像データを取得し、学習モデルによって、画像データに応じて卵の状態を判定し、判定結果に応じて卵の分類先を決定する。卵の状態を判定するために学習モデルを利用することにより、正確に卵の状態を判定し、適切に卵を分類することが可能となる。
【0017】
本発明の一形態においては、卵分類装置は、卵の状態として、卵殻の破損の程度、卵殻の汚れの程度、又は卵殻の汚れの種類を判定する。卵殻の破損の程度、卵殻の汚れの程度、又は卵殻の汚れの種類は、卵の品質に大きく影響する。これらの卵の状態に応じて卵を分類することにより、適切な品質の卵を選別することが可能となる。
【0018】
本発明の一形態においては、卵分類装置は、容器に収容された状態の卵を撮影した画像を表す画像データに応じて、卵の状態として、卵殻の破損の程度、卵殻の汚れの程度、又は卵殻の汚れの種類を判定する。卵が容器に収容された状態でも、卵の状態を判定して卵を分類することにより、低品質の卵が出荷されることを防止することが可能となる。
【0019】
本発明の一形態においては、卵分類装置は、判定した卵の状態を表す情報を出力する。これにより、使用者が卵の状態を知ることができる。また、他の装置が卵を分類するために卵の状態の判定結果を利用することができる。
【0020】
本発明の一形態においては、卵分類装置は、ルールに基づいた判定と学習モデルを用いた判定とを組み合わせることにより、適切な判定を行い、適切に卵を分類することが可能となる。
【0021】
本発明の一形態においては、卵分類装置は、判明している卵の状態を表す情報と、当該卵を撮影した画像を表す画像データとを教師データとして学習モデルの再学習を行う。実際の卵の状態に応じて学習モデルが再学習され、より正確に卵の状態を判定することができるように学習モデルが更新される。
【0022】
本発明の一形態においては、卵分類装置は、指定された卵の品質に応じて、卵の状態を判定するために用いる学習モデルを調整するか、又は卵の分類先を決定するための基準を調整する。これにより、必要な品質の卵が得られるように適切に卵を分類することが可能となる。
【0023】
本発明の一形態においては、卵分類装置は、推定される産卵からの経過時間に応じて、卵の状態を判定するために用いる学習モデルを調整するか、又は卵の分類先を決定するための基準を調整する。これにより、適切に卵を分類することを可能にする。
【発明の効果】
【0024】
本発明にあっては、状態の異なる種々の卵が混在する中でも、より正確に卵の状態を判定し、より適切に卵を分類することが可能となる等、優れた効果を奏する。
【図面の簡単な説明】
【0025】
【
図1】卵を分類して出荷するために用いられる卵分類システムの構成例を示す模式図である。
【
図2】破卵検出装置の機能構成例を示すブロック図である。
【
図4】破卵検出装置の分析部が行う卵を分類するための処理の手順を示すフローチャートである。
【
図5】判定処理の手順を示すフローチャートである。
【
図6】学習モデルの機能構成例を示す概念図である。
【
図7】卵画像分析装置の機能構成例を示すブロック図である。
【
図9】卵を分類するための処理の手順を示すフローチャートである。
【
図10】判定処理の手順を示すフローチャートである。
【
図11】学習モデルの機能構成例を示す概念図である。
【
図12】設定処理の手順を示すフローチャートである。
【
図13】容器内画像分析装置の機能構成例を示すブロック図である。
【
図15】学習モデルの機能構成例を示す概念図である。
【
図16】再学習の処理の手順を示すフローチャートである。
【
図17】再学習の際に表示部に表示される画面例を示す模式図である。
【
図18】再学習の際に表示部に表示される他の画面例を示す模式図である。
【
図19】学習を外部で行う卵画像分析装置の機能構成例を示すブロック図である。
【
図20】記憶装置の内部構成例を示すブロック図である。
【発明を実施するための形態】
【0026】
以下本発明をその実施の形態を示す図面に基づき具体的に説明する。
図1は、卵を分類して出荷するために用いられる卵分類システム100の構成例を示す模式図である。多数の卵が養鶏場等の生産場から集荷され、卵分類システム100で処理される。卵分類システム100は、卵を線状に搬送する搬送装置11を備えている。搬送装置11は、多数の卵を載置され、載置された卵を搬送する搬送路を用いて構成されている。搬送装置11は、例えば、多数のローラを備えたコンベヤであり、ローラ上に卵が載置され、ローラが移動することによって卵を搬送する。
図1には卵の搬送方向を矢印で示している。集荷された多数の卵は、搬送装置11によって搬送され、搬送されながら種々の処理を受ける。
【0027】
卵は、長径方向が搬送方向に交差するように、搬送路上に載置される。卵は、長径方向に沿った軸を回転軸として回転しながら搬送される。例えば、卵が載置されたローラが回転することによって、卵が回転させられる。卵は、搬送方向に沿って複数の卵が列状に並んだ状態で搬送される。また、卵は、搬送方向に交差する方向に複数の列が並んだ状態で搬送される。
【0028】
搬送装置11には、移動量検出装置36が接続されている。移動量検出装置36は、搬送装置11の動作を測定し、搬送装置11の動作に基づいて、搬送装置11で搬送されている個々の卵の移動量を検出する。例えば、移動量検出装置36は、ローラコンベヤが有する個々のローラの通過を検出するセンサを備え、センサの検出結果に基づいて各ローラの移動を検出する。移動量検出装置36は、検出したローラの移動に基づいて、搬送されている個々の卵の移動量を検出する。更に、移動量検出装置36は、個々の卵の移動量を表す情報を出力する。
【0029】
卵分類システム100は、洗浄機31を備える。洗浄機31は、搬送装置11で搬送される卵を洗浄する。卵分類システム100は、破卵検出装置41を備える。破卵検出装置41は、洗浄された後で搬送される卵に含まれる破卵を検出する。破卵は、卵殻が破損した卵である。破卵検出装置41は、夫々の卵の画像を撮像し、画像解析により、卵が破卵であるか否かを判定する。また、破卵検出装置41は、破卵と判定した卵を搬送装置11から排除する。また、破卵検出装置41は、卵殻の破損の程度を判定してもよい。卵分類システム100は、乾燥機32を備える。乾燥機32は、搬送装置11で搬送される卵を乾燥させる。
【0030】
卵分類システム100は、卵画像分析装置42を備えている。卵画像分析装置42は、搬送装置11で搬送される夫々の卵の画像を撮像し、画像解析により、卵の状態を判定する。例えば、卵画像分析装置42は、卵を撮像した画像に基づいて、卵殻の色、卵殻の汚れの有無、汚れの程度、汚れの種類、又は表面性状を判定する。また、卵画像分析装置42は、卵を撮像した画像に基づいて、卵の形状又はサイズを計測してもよい。例えば、卵画像分析装置42は、卵を撮像した画像から、卵の形状を表す値として、卵の長径及び短径を計測する。例えば、卵画像分析装置42は、卵のサイズを表す値として、卵を撮像した画像中の卵の面積を計測する。卵画像分析装置42は、夫々の卵の状態を表す情報を出力する。
【0031】
卵分類システム100は、サイズ測定器33を備えている。サイズ測定器33は、搬送装置11で搬送される夫々の卵のサイズを計測する。例えば、サイズ測定器33は、発光器及び受光器を有し、発光器からの光が卵に遮られて受光器で受光できない時間を計測し、計測した時間と搬送装置11による卵の移動速度とに基づいて、卵の搬送方向の長さを計測する。
【0032】
卵分類システム100は、打撃分析装置5を備えている。打撃分析装置5は、搬送装置11で搬送される夫々の卵に対して打撃を付与し、打撃によって発生する現象を測定し、測定結果に基づいて卵殻の状態を判定する。例えば、打撃分析装置5は、卵に打撃を付与することによって発生する現象を表す打撃データ及び卵殻の状態を表す情報を含む教師データを用いて学習された学習モデルを有している。打撃分析装置5は、卵に打撃を付与することによって発生する現象を表す打撃データを取得し、学習モデルによって、取得した打撃データに基づいて卵殻の状態を判定し、判定結果に応じて卵の分類先を決定する。打撃分析装置5は、打撃によって発生する音を測定する。また、打撃分析装置5は、測定結果に基づいて、卵殻の破損の有無、破損の大きさの程度、卵殻の厚み、卵殻の強度、又は卵殻の剛性等を判定する。打撃分析装置5は、卵殻の状態を表す情報を出力する。
【0033】
卵分類システム100は、搬送装置11で搬送される卵を殺菌する殺菌機34を備えている。例えば、殺菌機34は、卵に紫外線を照射することによって、卵殻表面を殺菌する。洗浄機31、破卵検出装置41、乾燥機32、卵画像分析装置42、計量機35、打撃分析装置5及び殺菌機34は、搬送装置11の搬送路に沿って配置されている。卵分類システム100は、卵の重量を計量する計量機35を備えている。計量機35は搬送装置11の搬送路の終端付近に配置されている。破卵検出装置41及び卵画像分析装置42については、後ほど詳細に説明する。
【0034】
卵分類システム100は、卵を線状に搬送する分配装置12を備えている。分配装置12は、キャリアを備え、計量機35で重量を計量された後の卵をキャリアで搬送する。例えば、キャリアは、個別に卵を載置させて移動するバケット、又は、個別に卵を掴んで持ち運ぶフィンガ及びアームである。分配装置12には、分配装置12を制御する制御装置37が接続されている。制御装置37は、各卵の位置を特定し、卵を載置させたバケットの底を開くか、卵を掴んだフィンガを動作させることにより、卵をキャリアの外へ放出させることができる。
【0035】
卵分類システム100は、透過光分析装置6を備えている。透過光分析装置6は、分配装置12で搬送される夫々の卵に対して光を照射し、卵を透過した光に基づいて夫々の卵の内部の状態を判定する。例えば、透過光分析装置6は、卵の内部の状態を表す情報及び卵を透過した光を表す透過光データを含む教師データを用いて学習された深層学習モデルを有している。透過光分析装置6は、卵を透過した光を表す透過光データを取得し、深層学習モデルによって、取得した透過光データに基づいて卵の内部の状態を判定し、判定結果に応じて卵の分類先を決定する。例えば、透過光分析装置6は、卵が血卵、みだれ卵、無黄卵又は腐敗卵等の内部異常卵であるか否かを判定する。また、例えば、透過光分析装置6は、卵の異常の種類又は異常の程度を判定する。
【0036】
本実施形態では、移動量検出装置36、卵画像分析装置42、サイズ測定器33、打撃分析装置5、計量機35、透過光分析装置6及び制御装置37を用いて、搬送装置11及び分配装置12で搬送される複数の卵を分類する。移動量検出装置36、卵画像分析装置42、サイズ測定器33、打撃分析装置5、計量機35、透過光分析装置6及び制御装置37は、互いに接続されている。卵画像分析装置42、打撃分析装置5、及び透過光分析装置6は、判定結果に基づいて、夫々の卵を分類すべき分類先を決定する。例えば、分類先は、出荷先の異なる卵のグループである。例えば、卵画像分析装置42は、卵殻の汚れに応じて卵を分類し、打撃分析装置5は、卵殻の破損に応じて卵を分類し、透過光分析装置6は、内部の異常に応じて卵を分類する。卵画像分析装置42、打撃分析装置5、及び透過光分析装置6は、夫々の卵の分類先を示す情報を出力する。
【0037】
卵分類システム100は、分配装置12と交差する複数のコンベヤを備えている。
図1には、分配装置12と交差するコンベヤ13及び14を示す。分配装置12と交差する夫々のコンベヤは夫々の分類先に対応する。例えば、コンベヤ13は、一般の商店へ出荷されるべき卵に分類された卵が搬送され、コンベヤ14は、卵殻の破損等のために一般の商店以外へ出荷されるべき卵に分類された卵が搬送される。分配装置12に交差するコンベヤの数は3個以上であってもよい。出荷されない卵が搬送されるコンベヤがあってもよい。制御装置37は、卵画像分析装置42、サイズ測定器33、打撃分析装置5、計量機35及び透過光分析装置6のうちの少なくとも一つからの情報を受け付け、夫々の卵の位置を特定し、分配装置12を制御して、夫々の卵の分類先に対応するコンベヤへ卵を移動させる。このようにして、卵が分類される。また、卵分類システム100は、一般の商店へ出荷されるべき卵について、さらに卵のグレード(例えば、卵殻の色、色の均一性、卵殻の表面性状、又は卵殻の模様等)別に卵を分類してもよい。
【0038】
分配装置12から放出された卵は、コンベヤ13上で容器に収容されて出荷されるものとする。コンベヤ13上には、容器内画像分析装置43が配置されている。また、コンベヤ13上には、賞味期限等の卵に関する情報を記載したラベルを容器内に収容するか、又は容器若しくは卵に貼り付ける機能を有するラベル配置装置があってもよい。
【0039】
容器内画像分析装置43は、容器に収容された卵の画像を撮像し、画像解析により、容器中の卵の状態を判定する。例えば、容器内画像分析装置43は、画像に基づいて、容器中の卵の卵殻の汚れの有無、汚れの程度、汚れの種類、卵殻の破損の有無、又は破損の程度を判定する。容器内画像分析装置43は、判定した卵の状態に応じて、容器中の卵を分類すべき分類先を決定する。一つの容器に収容された複数の卵は、容器ごとに同一の分類先へ分類される。例えば、汚れ又は卵殻の破損によって出荷すべきでない卵が容器に収容されていれば、その容器に収容された卵は出荷すべきでない卵に分類される。容器内画像分析装置43は、夫々の容器について分類先を示す情報を出力する。容器内画像分析装置43については、後ほど詳細に説明する。
【0040】
卵分類システム100は、卵の分類に関係する情報を入力される入力装置38を備えている。例えば、入力装置38は、使用者が操作するキーボード等の操作部を備え、使用者が操作部を操作することにより情報が入力される。例えば、入力装置38は、通信インタフェースを備え、通信インタフェースを通じて情報が入力される。例えば、入力装置38は、卵分類システム100外の図示しない通信ネットワークに接続されており、通信ネットワークを介して情報が入力される。入力装置38は、卵画像分析装置42、打撃分析装置5、透過光分析装置6及び容器内画像分析装置43に接続されている。
【0041】
入力装置38には、出荷すべき卵の品質を指定する情報が入力される。例えば、生産場から集荷された卵の状態に応じた品質を指定する情報が入力装置38へ入力される。また、例えば、顧客からの要求に応じた品質を指定する情報が入力装置38へ入力される。入力装置38は、入力された情報を、卵画像分析装置42、打撃分析装置5、透過光分析装置6及び容器内画像分析装置43へ出力する。卵画像分析装置42、打撃分析装置5、透過光分析装置6及び容器内画像分析装置43は、入力装置38から出力された情報を受け付け、受け付けた情報に応じて、卵の分類先を決定するための基準を調整する。例えば、集荷された卵の状態に特定の傾向がある場合に、その傾向がある卵を分類するための基準が用いられる。例えば、特定の用途のために要求された卵の数が多い場合に、その用途のための卵を多く確保できるように基準が調整される。また、例えば、要求された品質の高低に応じて基準が調整される。
【0042】
また、入力装置38は、卵が産卵されてからの経過時間に関する情報が入力されてもよい。例えば、入力装置38は、卵が産卵されてから卵分類システム100へ搬入されるまでの経過時間の推定値を表す情報が入力される。また、例えば、入力装置38は、生産場にて飼育されている家禽の点灯管理時間及び卵分類システム100への卵の搬入時刻を表す情報が入力される。家禽は光感受性が非常に高く、産卵時刻は光線の管理や飼料摂取と密接な関係にある。従って、家禽の産卵タイミングを点灯管理によってある程度調整することが可能である。つまり、明暗周期より産卵時刻を推定することができる。入力装置38は、入力された情報が表す照明の時刻から産卵時刻の推定値を計算し、産卵時刻の推定値と卵が搬入された時刻とに基づいて、産卵から搬入までの経過時間の推定値を計算する。
【0043】
入力装置38は、卵が産卵されてからの経過時間を表す情報を、卵画像分析装置42、打撃分析装置5、透過光分析装置6及び容器内画像分析装置43へ出力する。産卵からの経過時間によって、卵を撮影した画像、卵に打撃を付与したときに発生する現象、及び卵の透過光は、若干変化する。卵画像分析装置42、打撃分析装置5、透過光分析装置6及び容器内画像分析装置43は、入力装置38から出力された情報を受け付け、受け付けた情報に応じて、卵の分類先を決定するための基準を調整する。
【0044】
図1に示した卵分類システム100の構成は一例であり、卵分類システム100の構成は
図1に示した例に限るものではない。卵分類システム100に含まれる複数の装置は、
図1に示した順とは異なる順番で配置されていてもよい。卵分類システム100は、
図1に示した各装置の一部を備えていなくてもよい。例えば、卵分類システム100は、洗浄機31および乾燥機32を備えていなくてもよい。卵分類システム100により分類された卵は、出荷されずに保管されてもよい。
【0045】
本実施形態では、破卵検出装置41、卵画像分析装置42及び容器内画像分析装置43は、卵分類装置に対応する。破卵検出装置41、卵画像分析装置42及び容器内画像分析装置43は、卵分類方法を実行する。まず、破卵検出装置41について説明する。
図2は、破卵検出装置41の機能構成例を示すブロック図である。破卵検出装置41は、情報処理を行う分析部411と、搬送装置11により搬送される卵を撮影した画像を取得する画像取得部413とを備えている。画像取得部413は分析部411に接続されている。
【0046】
分析部411は、コンピュータを用いて構成されている。分析部411は、演算部4111と、演算に伴って発生する一時的なデータを記憶するメモリ4112と、光ディスク等の記録媒体410から情報を読み取るドライブ部4113と、ハードディスク等の不揮発性の記憶部4114とを備えている。演算部4111は、例えばCPU(Central Processing Unit )、GPU(Graphics Processing Unit)、又はマルチコアCPUを用いて構成されている。また、演算部4111は、量子コンピュータを用いて構成されていてもよい。メモリ4112は、例えばRAM(Random Access Memory)である。また、分析部411は、卵を撮影した画像を表す画像データに応じて卵の状態を判定するために用いられる学習モデル4115を備えている。また、分析部411は、使用者からの操作を受け付ける操作部4116と、画像を表示する表示部4117と、インタフェース部4118とを備えている。インタフェース部4118は、移動量検出装置36と接続されている。分析部411は、インタフェース部4118を介して、移動量検出装置36との間で情報を入出力する。
【0047】
演算部4111は、記録媒体410に記録されたコンピュータプログラム412をドライブ部4113に読み取らせ、読み取ったコンピュータプログラム412を記憶部4114に記憶させる。演算部4111は、記憶部4114に記憶されたコンピュータプログラム412に従った処理を実行する。なお、コンピュータプログラム412は、分析部411の外部からダウンロードされてもよい。この場合は、分析部411はドライブ部4113を備えていなくてもよい。
【0048】
学習モデル4115は、画像データに応じて卵の状態を判定する処理を行うための学習済みの学習モデルである。学習モデル4115は、コンピュータプログラム412に従って演算部4111が情報処理を実行することにより実現される。また、学習モデル4115は、プロセッサと、必要なプログラム及びデータを記憶するメモリとを含んで構成されていてもよい。また、学習モデル4115は、量子コンピュータを用いて実現されてもよい。
【0049】
図3は、画像取得部413の構成例を示す模式図である。画像取得部413は、搬送装置11により搬送される卵2を照明する照明部4132と、照明された卵2を撮影する撮影部4131とを有している。照明部4132は、LED(発光ダイオード;light emitting diode)等の光源を用いて構成されている。照明部4132は、発光し、卵2へ光を照射する。例えば、照明部4132は赤外光を卵2へ照射する。撮影部4131は、撮像素子を用いて構成されている。照明部4132は、例えば搬送される卵2よりも下に配置されている。撮影部4131は、例えば搬送される卵2よりも上に配置されている。撮影部4131は、卵2を透過した光を用いて、卵2を撮影する。
【0050】
卵2の搬送方向は、
図3中の左右方向である。卵2が搬送される向きを白矢印で示している。卵2は、搬送装置11に含まれる複数のローラ101に載置されている。ローラ101は、回転する。ローラ101が回転することにより、卵2も回転する。
図3中には、ローラ101及び卵2の回転する向きを矢印で示している。卵2は、搬送装置11に搬送されながら、照明部4132によって照明され、撮影部4131によって撮影される。撮影された画像には、複数の卵2が映っている。撮影部4131は、搬送される卵2を複数回撮影する。即ち、卵2は、搬送されながら複数回撮影される。また、卵2は回転しながら複数回撮影される。このため、卵2は、回転軸周りの複数の部分が撮影される。
【0051】
画像取得部413は、複数の列が並んだ状態で搬送される多数の卵2を撮影することができるようになっている。例えば、撮影部4131は、複数の列に含まれる複数の卵2を同時に撮影する。撮影された画像には、複数列の卵2が映っている。また、画像取得部413は、一つの撮影部4131で一つの卵2を撮影してもよく、複数の撮影部4131を備え、複数の撮影部4131で一つの卵2を複数回撮影してもよい。画像取得部413は、ミラー、レンズ及び光学フィルタ等の図示しない光学部品を含んでいてもよい。画像取得部413は、照明部4132を有さず、外部からの光を利用してもよい。
【0052】
撮影部4131は、卵2を撮影した画像を表す画像データを作成する。このとき、撮影部4131は、モノクロ画像を表す画像データを作成する。このようにして、画像取得部413は、卵2を撮影した画像を取得し、卵2を撮影した画像を表す画像データを分析部411へ入力する。画像取得部413は、画像データ取得部に対応する。なお、画像取得部413は、卵2で反射した反射光、又は蛍光を用いて卵2を撮影した画像を取得する形態であってもよい。また、画像取得部413は、反射光を用いて卵2を撮影した画像、透過光を用いて卵2を撮影した画像、及び蛍光を用いて卵2を撮影した画像のうち、複数の画像を取得する形態であってもよい。
【0053】
分析部411は、画像データに基づいて、夫々の卵2の状態を判定し、判定結果に応じて、夫々の卵2の分類先を決定する処理を行う。判定される卵2の状態は、具体的には、卵殻の破損の有無又は破損の大きさの程度である。卵殻の破損の有無及び破損の大きさに応じて、卵2を撮影した際に得られる画像は異なる。このため、画像データに応じて卵2の状態を判定することが可能である。なお、卵分類システム100は、破卵と判定した卵を排除する排除部415を備える。排除部415は、搬送装置11により搬送される卵2を搬送装置11から排除するための機構を有する。例えば、搬送装置11の搬送路に孔が設けられており、排除部415は、搬送路の孔を開閉する構成となっている。排除部415が搬送路の孔を開放した場合、卵2は孔から落下し、搬送装置11から排除される。
【0054】
図4は、破卵検出装置41の分析部411が行う卵2を分類するための処理の手順を示すフローチャートである。以下、ステップをSと略す。分析部411の演算部4111は、コンピュータプログラム412に従って以下の処理を実行する。分析部411は、インタフェース部4118で移動量検出装置36からの情報を受け付け、演算部4111は、移動量検出装置36からの情報に基づいて夫々の卵2の位置を特定する。演算部4111は、位置を特定した一の卵2についての画像データを画像取得部413から取得する(S11)。演算部4111は、画像データを記憶部4114に記憶する。
【0055】
演算部4111は、次に、画像データに基づいて、卵2の状態を判定する判定処理を行う(S12)。
図5は、判定処理の手順を示すフローチャートである。演算部4111は、ルールベースで卵2の状態を判定する(S121)。S121では、演算部4111は、予め定められているルールに基づいて、画像データに応じて卵殻の破損の有無又は破損の大きさの程度を判定する。演算部4111は、従来知られている方法により、卵2の状態を判定する処理を行ってよい。例えば、演算部4111は、卵2の画像からエッジ検出により卵殻の破損を検出し、画像に含まれる破損の大きさと所定の閾値との比較に基づいて、卵殻の破損の大きさの程度を判定する。S121の処理は、第2判定部に対応する。
【0056】
演算部4111は、次に、学習モデル4115を用いて卵2の状態を判定する(S122)。学習モデル4115は、卵2を撮影した画像を表す画像データと卵2の卵殻の破損の有無又は破損の大きさの程度を表す情報とを含む教師データを用いて、画像データから卵2の卵殻の破損の有無又は破損の大きさの程度を判定するように、予め学習がなされている。例えば、学習モデル4115は、ニューラルネットワークを用いている。
【0057】
図6は、学習モデル4115の機能構成例を示す概念図である。学習モデル4115は、夫々に複数のノードを有する入力層、中間層及び出力層を備えたニューラルネットワークを用いる。入力層は、画像データが入力される複数のノード4141を有する。例えば、画像に含まれる各画素での画素値が、いずれかのノード4141へ入力される。中間層は、入力層のノード4141から入力されるデータにパラメータを用いて演算する複数のノード4142を有する。複数のノード4142は、出力層に含まれる複数のノード4143へデータを出力する。出力層は、中間層のノード4142から演算されたデータを受け付け、卵2の状態を出力する複数のノード4143を有する。例えば、一のノード4143は、卵殻に破損が存在する確率をスコアとして出力し、他のノード4143は、破損の大きさがある大きさである確率をスコアとして出力する。
図6には、中間層が一層である例を示しているが、中間層は複数層であってもよい。学習モデル4115は、ニューラルネットワークとして、畳みこみニューラルネットワーク(CNN:Convolutional Neural Network)、又は再帰型ニューラルネットワーク(RNN:Recurrent Neural Network)を用いてもよい。
【0058】
学習モデル4115は、教師データを用いて予め学習がなされている。卵殻に破損及び汚れの無い多数の卵2を含む、状態が判明している多数の卵2について、画像データが取得され、教師データが作成される。教師データには、各卵2の状態を表す情報と各卵2を撮影した画像を表す画像データとが含まれる。教師データに含まれる各卵2についての画像データが入力層の各ノード4141へ入力され、教師データに含まれる情報が示す各卵2の状態に合致したスコアを出力層の各ノード4143が出力されるように、各ノードの演算のパラメータが調整される学習がなされている。例えば、学習では、出力層の各ノード4143の出力値及び教師データから期待される出力値を変数とする誤差関数により誤差を計算し、誤差逆伝搬法によって当該誤差が最小となるように、各ノードの演算のパラメータを調整している。
【0059】
学習モデル4115の学習は破卵検出装置41で行ってもよい。例えば、状態が判明している卵2の画像データを画像取得部413で取得することで教師データが作成され、分析部411が学習のための情報処理を実行する。代替的に、破卵検出装置41の外部から教師データが入力され、分析部411が学習のための情報処理を実行してもよい。代替的に、破卵検出装置41の外部にある学習装置で学習が行われ、学習の結果に基づいて学習モデル4115が作成されていてもよい。学習装置は、コンピュータを用いて構成される。卵2の画像データが取得され、画像データが取得された後の卵2の状態が調べられ、画像データと調べられた卵2の状態を表す情報とを含む教師データが作成されてもよい。学習装置は、教師データを入力され、学習を行ってもよい。学習装置は、画像データと卵2の状態を表す情報とを入力され、入力されたデータ及び情報を含む教師データを作成し、作成した教師データを用いて学習を行ってもよい。
【0060】
学習モデル4115は、反射光又は蛍光を用いて卵2を撮影した画像を表す画像データが入力され、卵2の状態を出力する形態であってもよい。或いは、学習モデル4115は、反射光を用いて卵2を撮影した画像を表す画像データが入力される学習モデルと、透過光を用いて卵2を撮影した画像を表す画像データが入力される学習モデルと、蛍光を用いて卵2を撮影した画像を表す画像データが入力される学習モデルのうち、複数の学習モデルを含んでいてもよい。
【0061】
演算部4111は、学習モデル4115の出力に応じて、卵2の状態を判定する。例えば、演算部4111は、卵殻に破損が存在する確率が所定の閾値未満である場合に卵殻に破損が無いと判定し、卵殻に破損が存在する確率が所定の閾値以上である場合に卵殻に破損があると判定する。例えば、演算部4111は、スコアが最大の値になる破損の大きさを、卵殻の破損の大きさの程度であると判定する。また、演算部4111は、反射光を用いて卵2を撮影した画像を表す画像データを入力した学習モデルの出力と、透過光を用いて卵2を撮影した画像を表す画像データを入力した学習モデルの出力と、蛍光を用いて卵2を撮影した画像を表す画像データを入力した学習モデルの出力とのうち、複数の出力を組み合わせて、卵2の状態を判定してもよい。
【0062】
演算部4111は、次に、S121での判定結果及びS122での判定結果に基づいて、卵2の状態の判定結果を確定する(S123)。S123では、S121のルールベースでの判定結果とS122の学習モデル4115を用いた判定結果とを組み合わせて、卵2の状態の判定結果を確定する。例えば、S121で卵2の状態が不明であるという判定が可能である・BR>ニしておき、演算部4111は、S121での判定結果が不明でない場合はS123ではS121での判定結果を採用し、S121での判定結果が不明である場合は、S122の処理を行い、S123ではS122での判定結果を採用する。また、例えば、演算部4111は、S122の処理で得られたスコアと所定の閾値とを比較し、比較結果に応じて、S121での判定結果とS122での判定結果とのどちらを採用するのかを決定する。また、例えば、演算部4111は、S122の処理を先に行い、スコアの値が所定の閾値未満である等、S122で卵2の状態が不明である場合に、S121の処理を行ってS123ではS121での判定結果を採用し、S122での判定結果が不明でない場合はS123ではS122での判定結果を採用する。例えば、演算部4111は、S121及びS122で卵2の状態が複数の状態の夫々である確率を表すスコアを生成し、S121及びS122で得られたスコアを合計、平均又は重み付平均等の所定の計算方法で組み合わせた組み合わせスコアを計算し、組み合わせスコアに基づいて判定結果を確定する。S123が終了した後、演算部4111は、処理をメインの処理へ戻す。ルールベースでの判定と学習モデル4115を用いた判定とを組み合わせることにより、適切な判定を行うことができる。なお、S12の処理では、ルールベースでの判定を行わず、学習モデル4115を用いた判定の処理のみを行ってもよい。
【0063】
演算部4111は、次に、卵2の状態の判定結果を出力する(S13)。S13では、演算部4111は、判定結果を含む画像を表示部4117に表示させる。例えば、演算部4111は、卵殻に破損の無い卵2の数、卵殻に破損のある卵2の数、又は卵殻の破損の程度が所定の範囲に含まれる卵2の数を表示部4117に表示する。演算部4111は、S121のルールベースでの判定結果とS122の学習モデル4115を用いた判定結果との夫々を表示部4117に表示させてもよい。
【0064】
演算部4111は、次に、卵2の状態の判定結果に応じて、卵2の分類先を決定する(S14)。例えば、演算部4111は、卵殻の破損の大きさが所定の基準を超過している場合の卵2の分類先と、卵殻に破損が無い場合の卵2の分類先と、卵殻の破損の大きさが所定の基準以下である場合の卵2の分類先とをそれぞれ決定する。S14の処理は決定部に対応する。
【0065】
演算部4111は、次に、破卵に分類された卵2を搬送装置11から排除する(S15)。S15では、演算部4111は、破卵に分類された卵2の位置を特定し、排除部415に、破卵に分類された卵2を排除させる。例えば、排除部415は、破卵に分類された卵2が搬送路の孔の上を通過するタイミングで、搬送路の孔を開放する。破卵に分類された卵2は、孔から落下し、搬送装置11から排除される。破卵ではないグループに分類された卵2については、排除部415による排除は行われない。分析部411は、S11~S15の処理を、搬送装置11で搬送される複数の卵2の夫々について実行する。分析部411は、複数の卵2についての処理を順次的に行ってもよく、並列に行ってもよい。なお、破卵検出装置41は、S15の処理を行わず、インタフェース部4118を通じて、卵2の分類先を表す分類先データを破卵検出装置41の外部へ出力する処理を行ってもよい。制御装置37は、出力された分類先データを取得し、分類先データに基づいて、破卵に分類された卵2を特定し、分類してもよい。
【0066】
次に、卵画像分析装置42について説明する。
図7は、卵画像分析装置42の機能構成例を示すブロック図である。卵画像分析装置42は、情報処理を行う分析部421と、搬送装置11により搬送される卵2を撮影した画像を取得する画像取得部423とを備えている。画像取得部423は分析部421に接続されている。
【0067】
分析部421は、コンピュータを用いて構成されている。分析部421は、演算部4211と、メモリ4212と、ドライブ部4213と、不揮発性の記憶部4214とを備えている。演算部4211は、例えばCPU、GPU、マルチコアCPU、又は量子コンピュータを用いて構成されていてもよい。メモリ4212は、例えばRAMである。また、分析部421は、卵2を撮影した画像を表す画像データに応じて卵2の状態を判定するために用いられる学習モデル4215を備えている。
【0068】
また、分析部421は、使用者からの操作を受け付ける操作部4216と、画像を表示する表示部4217と、インタフェース部4218とを備えている。操作部4216は、使用者からの操作を受け付けることにより、テキスト等の情報を受け付ける。操作部4216は、例えば、タッチパネル、キーボード又はポインティングデバイスである。表示部4217は、例えば液晶ディスプレイ又はELディスプレイ(Electroluminescenct Display)である。また、分析部421は、通信部を備え、通信部を通じて、分析部421外のスマートフォン等の操作部から情報を受け付け、分析部421外のスマートフォン等の表示部に画像を表示する機能を有していてもよい。インタフェース部4218は、移動量検出装置36及び入力装置38と接続されている。分析部421は、インタフェース部4218を介して、移動量検出装置36及び入力装置38との間で情報を入出力する。
【0069】
演算部4211は、光ディスク等の記録媒体420に記録されたコンピュータプログラム422をドライブ部4213に読み取らせ、読み取ったコンピュータプログラム422を記憶部4214に記憶させる。演算部4211は、記憶部4214に記憶されたコンピュータプログラム422に従った処理を実行する。例えば、演算部4211は、必要に応じてコンピュータプログラム422を記憶部4214からメモリ4212へロードし、ロードしたコンピュータプログラム422に従って、分析部421に必要な処理を実行する。なお、コンピュータプログラム422は、分析部421の外部からダウンロードされてもよい。この場合は、分析部421はドライブ部4213を備えていなくてもよい。
【0070】
学習モデル4215は、画像データに応じて卵2の状態を判定する処理を行うための学習済みの学習モデルである。学習モデル4215は、コンピュータプログラム422に従って演算部4211が情報処理を実行することにより実現される。また、学習モデル4215は、プロセッサと、必要なプログラム及びデータを記憶するメモリとを含んで構成されていてもよい。また、学習モデル4215は、量子コンピュータを用いて実現されてもよい。
【0071】
図8は、画像取得部423の構成例を示す模式図である。画像取得部423は、搬送装置11により搬送される卵2を照明する照明部4232と、照明された卵2を撮影する撮影部4231とを有している。照明部4232は、蛍光灯又はLED等の光源を用いて構成されている。照明部4232は、発光し、卵2へ光を照射する。撮影部4231は、撮像素子を用いて構成されており、カラー画像を撮影する。照明部4232及び撮影部4231は、例えば、搬送される卵2の上側に配置されている。撮影部4231は、卵2で反射した反射光を用いて、卵2を撮影する。
【0072】
卵2の搬送方向は、
図8中の左右方向である。卵2が搬送される向きを白矢印で示している。照明部4232及び撮影部4231は、卵2よりも上にある位置に配置されている。
図8中には、搬送装置11に含まれるローラ101を示している。卵2は、複数のローラ101に載置されている。ローラ101は、回転する。ローラ101が回転することにより、卵2も回転する。
図8中には、ローラ101及び卵2の回転する向きを矢印で示している。卵2は、搬送装置11に搬送されながら、照明部4232によって照明され、撮影部4231によって撮影される。撮影された画像には、複数の卵2が映っている。撮影部4231は、搬送される卵2を複数回撮影する。即ち、卵2は、搬送されながら複数回撮影される。また、卵2は回転しながら複数回撮影される。このため、卵2は、回転軸周りの複数の部分が撮影される。
【0073】
画像取得部423は、複数の列が並んだ状態で搬送される多数の卵2を撮影することができるようになっている。例えば、撮影部4231は、複数の列に含まれる複数の卵2を同時に撮影する。撮影された画像には、複数列の卵2が映っている。また、画像取得部423は、一つの撮影部4231で一つの卵2を撮影してもよく、複数の撮影部4231で一つの卵2を複数回撮影してもよい。画像取得部423は、ミラー、レンズ及び光学フィルタ等の図示しない光学部品を含んでいてもよい。画像取得部423は、照明部4232を有さず、外部からの光を利用してもよい。
【0074】
撮影部4231は、卵2を撮影した画像を表す画像データを作成する。このとき、撮影部4231は、カラー画像を表す画像データを作成する。このようにして、画像取得部423は、卵2を撮影した画像を取得し、卵2を撮影した画像を表す画像データを分析部421へ入力する。画像取得部423は、画像データ取得部に対応する。なお、画像取得部423は、卵2を透過した透過光を用いて卵2を撮影した画像、又は励起された卵2の蛍光を用いて卵2を撮影した画像を取得する形態であってもよい。また、画像取得部423は、反射光を用いて卵2を撮影した画像、透過光を用いて卵2を撮影した画像、及び蛍光を用いて卵2を撮影した画像のうち、複数の画像を取得する形態であってもよい。
【0075】
分析部421は、画像データに基づいて、夫々の卵2の状態を判定し、判定結果に応じて、夫々の卵2の分類先を決定する処理を行う。判定される卵2の状態は、具体的には、卵殻の色、色の均一性、卵殻の汚れの有無、汚れの程度、汚れの種類、卵殻の破損の有無、破損の程度、卵殻の奇形の有無、奇形の種類、卵殻の表面性状、卵殻の模様、又は卵殻上の印字である。卵殻の色には、白色、淡褐色又は褐色等がある。汚れの程度は、卵2内での汚れの大きさ又は汚れの色の濃さ等を意味する。汚れの種類には、スポット状の黄色汚れ、茶色汚れ、白色汚れ、灰色汚れ若しくは黒色汚れ、又はしみ状に広がったしみ汚れ等がある。卵殻の奇形は、卵殻の形状が標準的な形状と異なっていること、又は極大卵や極小卵等がある。卵殻の表面性状には、卵殻の表面が平滑であること、又は卵殻の表面に突起若しくはざらつきがあること等がある。卵殻の模様には、無地、そばかす模様、又は斑点模様等がある。画像データは、卵2の状態に応じて異なる。このため、画像データに応じて卵2の状態を判定することが可能である。
【0076】
従来、画像データに応じて卵2の状態を判定する技術が知られている。画像データの彩度若しくは明度又は各色の画素の卵2内の分布から、卵殻の色、卵殻の汚れの有無、汚れの程度、又は汚れの種類を判定する。同様に、卵殻の破損の有無、破損の程度、卵殻の色の均一性、卵殻の表面性状、卵殻の模様、又は卵殻上の印字も、各色の分布から判定することができる。また、画像に含まれる卵殻の形状から、卵殻の奇形の有無、又は奇形の種類を判定することができる。このように、画像データに応じて卵2の状態を判定することができる。
【0077】
卵画像分析装置42の分析部421は、卵2を分類するための処理を行う。
図9は、卵2を分類するための処理の手順を示すフローチャートである。分析部421の演算部4211は、コンピュータプログラム422に従って以下の処理を実行する。分析部421は、インタフェース部4218で移動量検出装置36からの情報を受け付け、演算部4211は、移動量検出装置36からの情報に基づいて夫々の卵2の位置を特定する。演算部4211は、位置を特定した一の卵2についての画像データを画像取得部423から取得する(S21)。S21では、演算部4211は、位置を特定した卵2を撮影した撮影部4231から画像データを取得し、複数回の撮影の夫々に関する画像データを夫々の撮影部4231から取得する。即ち、演算部4211は、一の卵2について、撮影複数回分の画像データを取得する。演算部4211は、画像データを記憶部4214に記憶する。演算部4211は、次に、卵2を分類するための設定を行う設定処理を行う(S22)。設定処理の詳細については後述する。演算部4211は、S21とS22との処理を逆の順で実行してもよい。
【0078】
演算部4211は、次に、画像データに基づいて、卵2の状態を判定する判定処理を行う(S23)。
図10は、判定処理の手順を示すフローチャートである。演算部4211は、ルールベースで卵2の状態を判定する(S231)。S231では、演算部4211は、予め定められているルールに基づいて、画像データに応じて卵2の状態を判定する。演算部4211は、従来知られている方法により、卵2の状態を判定する処理を行ってよい。例えば、演算部4211は、R、G及びBの画像中の画素値の分布に基づいて、卵2の卵殻の色、卵殻の色の均一性、卵殻の汚れの有無、汚れの程度、汚れの種類、卵殻の破損の有無、破損の程度、卵殻の表面性状、卵殻の模様、又は卵殻上の印字を判定する。例えば、演算部4211は、画像に含まれる卵殻の形状から、卵2の卵殻の奇形の有無、又は奇形の種類を判定する。演算部4211は、撮影複数回分の画像データの全てを利用してもよく、一部のみを利用してもよい。S231の処理は、第2判定部に対応する。
【0079】
演算部4211は、次に、学習モデル4215を用いて卵2の状態を判定する(S232)。学習モデル4215は、卵2を撮影した画像を表す画像データと卵2の卵殻の色、色の均一性、卵殻の汚れの有無、汚れの程度、汚れの種類、卵殻の破損の有無、破損の程度、卵殻の奇形の有無、奇形の種類、卵殻の表面性状、卵殻の模様、又は卵殻上の印字を表す情報とを含む教師データを用いて、画像データから卵2の卵殻の色、色の均一性、卵殻の汚れの有無、汚れの程度、汚れの種類、卵殻の破損の有無、破損の程度、卵殻の奇形の有無、奇形の種類、卵殻の表面性状、卵殻の模様、又は卵殻上の印字を判定するように、予め学習がなされている。例えば、学習モデル4215は、ニューラルネットワークを用いている。
【0080】
図11は、学習モデル4215の機能構成例を示す概念図である。学習モデル4215は、ニューラルネットワークを用いる。入力層は、画像データが入力される複数のノード4241を有する。例えば、撮影複数回分の画像データの夫々が、いずれかのノード4241へ入力される。入力層へは、画像データに加えて、品質を指定する情報、産卵からの経過時間を表す情報の少なくとも1つが入力されてもよい。中間層は、入力層のノード4241から入力されるデータにパラメータを用いて演算する複数のノード4242を有する。複数のノード4242は、出力層に含まれる複数のノード4243へデータを出力する。出力層は、中間層のノード4242から演算されたデータを受け付け、卵2の状態を出力する複数のノード4243を有する。例えば、一のノード4243は、卵2の卵殻の色が特定の色である確率をスコアとして出力し、他のノード4243は、卵殻に汚れが存在する確率をスコアとして出力し、更に他のノード4243は、汚れの程度が所定の程度である確率をスコアとして出力し、更に他のノード4243は、汚れの種類が特定の種類である確率をスコアとして出力する。例えば、ノード4243は、卵殻の色の均一性が特定の状態である確率、卵殻に破損が存在する確率、破損の程度が所定の程度である確率、卵殻が奇形である確率、卵殻の奇形が特定の種類である確率、卵殻の表面性状が所定の種類である確率、卵殻の模様が所定の種類である確率、又は卵殻上に所定の印字が存在する確率をスコアとして出力する。中間層は複数層であってもよい。学習モデル4215は、ニューラルネットワークとして、CNN又はRNNを用いてもよい。
【0081】
学習モデル4215は、教師データを用いて予め学習がなされている。卵殻に汚れ及び奇形の無い多数の卵2を含む、状態が判明している多数の卵2について、画像データが取得され、教師データが作成される。教師データには、各卵2の状態を表す情報と各卵2を撮影した画像を表す画像データとが含まれる。教師データに含まれる各卵2についての画像データが入力層の各ノード4241へ入力され、教師データに含まれる情報が示す各卵2の状態に合致したスコアを出力層の各ノード4243が出力されるように、各ノードの演算のパラメータが調整される学習がなされている。例えば、学習では、出力層の各ノード4243の出力値及び教師データから期待される出力値を変数とする誤差関数により誤差を計算し、誤差逆伝搬法によって当該誤差が最小となるように、各ノードの演算のパラメータを調整している。
【0082】
学習モデル4215の学習は卵画像分析装置42で行ってもよい。例えば、状態が判明している卵2の画像データを画像取得部423で取得することで教師データが作成され、分析部421が学習のための情報処理を実行する。代替的に、卵画像分析装置42の外部から教師データが入力され、分析部421が学習のための情報処理を実行してもよい。代替的に、卵画像分析装置42の外部にある学習装置で学習が行われ、学習の結果に基づいて学習モデル4215が作成されていてもよい。学習装置は、コンピュータを用いて構成される。卵2の画像データが取得され、画像データが取得された後の卵2の状態が調べられ、画像データと調べられた卵2の状態を表す情報とを含む教師データが作成されてもよい。学習装置は、教師データを入力され、学習を行ってもよい。学習装置は、画像データと卵2の状態を表す情報とを入力され、入力されたデータ及び情報を含む教師データを作成し、作成した教師データを用いて学習を行ってもよい。
【0083】
学習モデル4215は、透過光又は蛍光を用いて卵2を撮影した画像を表す画像データが入力され、卵2の状態を出力する形態であってもよい。或いは、学習モデル4215は、反射光を用いて卵2を撮影した画像を表す画像データが入力される学習モデルと、透過光を用いて卵2を撮影した画像を表す画像データが入力される学習モデルと、蛍光を用いて卵2を撮影した画像を表す画像データが入力される学習モデルとのうち、複数の学習モデルを含んでいてもよい。
【0084】
演算部4211は、学習モデル4215の出力に応じて、卵2の状態を判定する。例えば、演算部4211は、スコアが最大の値になる色を卵2の卵殻の色とする。例えば、演算部4211は、スコアが最大の値になる卵殻の色の均一性の状態を、卵2の卵殻の色の均一性であると判定する。例えば、演算部4211は、卵殻に汚れが存在する確率が所定の閾値以上である場合に卵殻に汚れがあると判定し、卵殻に汚れが存在する確率が所定の閾値未満である場合に卵殻に汚れは無いと判定する。例えば、演算部4211は、スコアが最大の値になる汚れの程度を、卵殻の汚れの程度であると判定する。例えば、演算部4211は、スコアが最大の値になる汚れの種類を、卵殻の汚れの種類であると判定する。例えば、演算部4211は、卵殻が奇形である確率が閾値以上である場合に卵殻が奇形であると判定し、卵殻が奇形である確率が所定の閾値未満である場合に卵殻は奇形ではないと判定する。例えば、演算部4211は、スコアが最大の値になる奇形の種類を、卵殻の奇形の種類であると判定する。例えば、演算部4211は、スコアが最大の値になる卵殻の表面性状の種類を、卵2の卵殻の表面性状の種類であると判定する。例えば、演算部4211は、スコアが最大の値になる卵殻の模様の種類を、卵2の卵殻の模様の種類であると判定する。卵殻の破損の有無、破損の程度、及び卵殻上の印字についても同様である。
【0085】
また、学習モデル4215は、卵殻の色を判定するための学習モデル、卵殻の色の均一性を判定するための学習モデル、卵殻の汚れの有無を判定するための学習モデル、卵殻の汚れの程度を判定するための学習モデル、卵殻の汚れの種類を判定するための学習モデル、卵殻の破損の有無を判定するための学習モデル、卵殻の破損の程度を判定するための学習モデル、卵殻の奇形の有無を判定するための学習モデル、卵殻の奇形の種類を判定するための学習モデル、卵殻の表面性状を判定するための学習モデル、卵殻の模様を判定するための学習モデル、又は卵殻上の印字を判定するための学習モデルを、個別に含んでいてもよい。S232では、演算部4211は、夫々の学習モデルを用いて夫々の判定を行う。
【0086】
学習モデル4215の入力層には、撮影複数回分の画像データの全てが入力されてもよく、一部のみが入力されてもよい。また、演算部4211は、反射光を用いて卵2を撮影した画像を表す画像データを入力した学習モデルの出力と、透過光を用いて卵2を撮影した画像を表す画像データを入力した学習モデルの出力と、蛍光を用いて卵2を撮影した画像を表す画像データを入力した学習モデルの出力とのうち、複数の出力を組み合わせて、卵2の状態を判定してもよい。S232の処理は、第1判定部に対応する。S231の処理とS232の処理とは逆の順番で実行されてもよく、並列に実行されてもよい。
【0087】
演算部4211は、次に、S231での判定結果及びS232での判定結果に基づいて、卵2の状態の判定結果を確定する(S233)。S233では、S231のルールベースでの判定結果とS232の学習モデル4215を用いた判定結果とを組み合わせて、卵2の判定結果を確定する。ルールベースでの判定結果と学習モデルを用いた判定結果とを組み合わる方法は、S123での処理と同様である。S233が終了した後、演算部4211は、処理をメインの処理へ戻す。ルールベースでの判定と学習モデル4215を用いた判定とを組み合わせることにより、適切な判定を行うことができる。なお、S23の処理では、ルールベースでの判定を行わず、学習モデル4215を用いた判定の処理のみを行ってもよい。
【0088】
演算部4211は、次に、卵2の状態の判定結果を出力する(S24)。S24では、演算部4211は、判定結果を含む画像を表示部4217に表示させる。例えば、演算部4211は、夫々の色の卵殻を有する卵2の数、卵殻の色の均一性が夫々の状態にある卵2の数、卵殻に汚れの無い卵2の数、汚れのある卵2の数、汚れの程度が所定の範囲に含まれる卵2の数、夫々の種類の汚れのある卵2の数、卵殻に破損の無い卵2の数、破損のある卵2の数、破損の程度が所定の範囲に含まれる卵2の数、奇形の卵殻を有する卵2の数、夫々の種類の奇形のある卵2の数、夫々の種類の表面性状を有する卵2の数、夫々の種類の模様を有する卵2の数、又は卵殻上に所定の印字がある卵2の数を表示部4217に表示する。演算部4211は、S231のルールベースでの判定結果とS232の学習モデル4215を用いた判定結果との夫々を表示部4217に表示させてもよい。使用者は、表示部4217に表示された内容を確認することにより、搬送装置11で搬送されている卵2の状態を知ることができる。また、演算部4211は、インタフェース部4218を通じて、卵2の状態を表すデータを卵画像分析装置42の外部へ出力する。例えば、透過光分析装置6は、卵殻の色又は汚れの有無等の卵2の状態を表すデータを取得し、取得したデータを利用した処理を行う。
【0089】
演算部4211は、次に、卵2の状態の判定結果に応じて、卵2の分類先を決定する(S25)。例えば、演算部4211は、卵2を色別に分類する。例えば、演算部4211は、卵2の卵殻の汚れの程度が所定の基準を超過している場合に、卵2の分類先は、加工用の卵2のグループ等、商店へ出荷される卵2とは用途の異なる卵2のグループであると決定する。例えば、演算部4211は、卵殻に汚れが無い場合、又は汚れの程度が所定の基準以下である場合に、卵2の分類先は一般の商店へ出荷可能な卵2のグループであると決定する。また、演算部4211は、卵殻の色の均一性、卵殻の汚れの種類、卵殻の破損の有無、破損の程度、卵殻の奇形の有無、奇形の種類、卵殻の表面性状、卵殻の模様、又は卵殻上の印字に応じて卵2を分類してもよい。S25の処理は決定部に対応する。
【0090】
演算部4211は、次に、インタフェース部4218を通じて、卵2の分類先を表す分類先データを卵画像分析装置42の外部へ出力する(S26)。S26の処理は、出力部に対応する。制御装置37は、分類先データを取得し、分類先データに基づいて分配装置12を制御し、卵2の分類先に対応するコンベヤ上の容器へ卵2を移動させることにより、卵2の分配を行う。演算部4211は、以上で卵2を分類するための処理を終了する。分析部421は、S21~S26の処理を、搬送装置11で搬送される複数の卵2の夫々について実行する。分析部421は、複数の卵2についての処理を順次的に行ってもよく、並列に行ってもよい。
【0091】
次に、S22の設定処理を説明する。
図12は、設定処理の手順を示すフローチャートである。演算部4211は、出荷すべき卵2の品質を指定する情報を取得する(S221)。集荷された卵2の状態に応じた卵2の品質(例えば、ロット情報等)が、入力装置38で設定され、S221では、演算部4211は、入力装置38から、設定された品質を指定する情報をインタフェース部4218を通じて受け付ける。又は、顧客からの要求に応じた品質を指定する情報が入力装置38へ入力され、演算部4211は、入力装置38から、品質を指定する情報をインタフェース部4218を通じて受け付ける。S221の処理は、第1情報取得部に対応する。
【0092】
出荷すべき卵2の品質に応じて、卵2の分類先を決定するための基準は調整される必要がある。卵2の分類先を決定するための基準を調整することにより、必要な品質の卵2が得られるように適切に卵2を分類することが可能となる。或いは、出荷すべき卵2の品質に応じて、卵2の状態を判定するために用いる学習モデル4215を調整することによっても、判定した卵2の状態に応じて適切に卵2を分類することが可能となる。
【0093】
演算部4211は、次に、卵2の産卵からの経過時間を表す情報を取得する(S222)。S222では、演算部4211は、入力装置38から、卵2が産卵されてからの経過時間の推定値を表す情報をインタフェース部4218を通じて受け付ける。又は、演算部4211は、入力装置38から、生産場にて飼育されている家禽を照明する時刻及び卵2が搬入された時刻を表す情報を受け付け、受け付けた情報に基づいて産卵からの経過時間の推定値を計算してもよい。S222の処理は、第2情報取得部に対応する。
【0094】
産卵されてからの経過時間に応じて、卵2の状態は変化する。例えば、経過時間が長くなるのに応じて、洗卵時の洗い残しに伴うしみが残りやすく、汚れの出現率が高くなる。このため、産卵されてからの経過時間に応じて、卵2を撮影した際に得られる画像は異なる。正確に卵2の状態を判定し、適切に卵2を分類するためには、卵2が産卵されてからの経過時間に応じて、卵2の状態を判定するために用いる学習モデル4215を調整することが望ましい。或いは、判定された卵2の状態に応じて卵2の分類先を決定するための基準を、卵2が産卵されてからの経過時間に応じて調整することによっても、適切に卵2を分類することが可能となる。
【0095】
演算部4211は、次に、S232の処理で用いるべき学習モデルを選択する(S223)。学習モデル4215は、パラメータの異なる複数の学習モデルを含んでいる。S223では、演算部4211は、学習モデル4215が含んでいる複数の学習モデルから、S232の処理で用いるべき学習モデルを選択する。より詳しくは、演算部4211は、出荷すべき卵2の品質及び産卵からの経過時間に応じて、適切な学習モデルを選択する。S232の処理では、S223で選択された学習モデルが使用され、適切に卵2の状態が判定される。
【0096】
演算部4211は、次に、S25の処理で用いるべき卵2の分類の基準を調整する(S224)。S224では、演算部4211は、出荷すべき卵2の品質及び産卵からの経過時間に応じて、卵2の分類の基準を調整する。例えば、演算部4211は、卵2の分類先を決定するために利用される卵殻の汚れの基準を、変更する。S25の処理では、S224で調整された基準が使用され、適切に卵2の分類先が決定される。S223及びS224の処理は、第1調整部及び第2調整部に対応する。S224が終了した後、演算部4211は、処理をメインの処理へ戻す。
【0097】
なお、演算部4211は、S223及びS224の処理の内、いずれか一方のみを実行してもよい。また、演算部4211は、S221及びS222の処理の内、いずれか一方のみを実行し、実行した処理で取得した情報に基づいてS223又はS224の処理を実行してもよい。また、S221及びS222の処理で取得される情報は、複数の卵2に共通する情報であるので、演算部4211は、各卵2について行うS21及びS23~S26の処理とは別に、S22の処理を行ってもよい。例えば、複数の卵2を搬送する前に、分析部421は、S22の処理を行う。
【0098】
また、卵画像分析装置42は、卵2の形状又はサイズを計測してもよい。演算部4211は、画像データに対して画像解析を行うことにより、画像データに基づいて、卵2の形状を表す値として、卵2の長径及び短径を計測する。又は、演算部4211は、画像データに対して画像解析を行うことにより、画像データに基づいて、卵2のサイズを表す値として、画像中の卵2の面積を計測する。演算部4211は、計測した卵2の形状又はサイズを表す情報を、インタフェース部4218から出力する。例えば、打撃分析装置5がインタフェース部4218に接続されており、打撃分析装置5は、卵2の形状又はサイズを表す情報を取得し、卵殻の状態を判定する処理で利用する。
【0099】
次に、容器内画像分析装置43について説明する。
図13は、容器内画像分析装置43の機能構成例を示すブロック図である。容器内画像分析装置43は、情報処理を行う分析部431と、容器に収容された複数の卵2を撮影した画像を取得する画像取得部433とを備えている。画像取得部433は分析部431に接続されている。
【0100】
分析部431は、コンピュータを用いて構成されている。分析部431は、演算部4311と、メモリ4312と、ドライブ部4313と、不揮発性の記憶部4314とを備えている。演算部4311は、例えばCPU、GPU、マルチコアCPU、又は量子コンピュータを用いて構成されていてもよい。メモリ4312は、例えばRAMである。また、分析部431は、卵2を撮影した画像を表す画像データに応じて卵2の状態を判定するために用いられる学習モデル4315を備えている。また、分析部431は、使用者からの操作を受け付ける操作部4316と、画像を表示する表示部4317と、インタフェース部4318とを備えている。インタフェース部4318は、移動量検出装置36及び入力装置38と接続されている。分析部431は、インタフェース部4318を介して、移動量検出装置36及び入力装置38との間で情報を入出力する。
【0101】
演算部4311は、光ディスク等の記録媒体430に記録されたコンピュータプログラム432をドライブ部4313に読み取らせ、読み取ったコンピュータプログラム432を記憶部4314に記憶させる。演算部4311は、記憶部4314に記憶されたコンピュータプログラム432に従った処理を実行する。なお、コンピュータプログラム432は、分析部431の外部からダウンロードされてもよい。この場合は、分析部431はドライブ部4313を備えていなくてもよい。
【0102】
学習モデル4315は、画像データに応じて卵2の状態を判定する処理を行うための学習済みの学習モデルである。学習モデル4315は、コンピュータプログラム432に従って演算部4311が情報処理を実行することにより実現される。また、学習モデル4315は、プロセッサと、必要なプログラム及びデータを記憶するメモリとを含んで構成されていてもよい。また、学習モデル4315は、量子コンピュータを用いて実現されてもよい。
【0103】
図14は、画像取得部433の構成例を示す模式図である。画像取得部433は、容器20に収容された複数の卵2を照明する照明部4332と、容器20に収容された複数の卵2を撮影する撮影部4331とを有している。照明部4332は光源を用いて構成されている。照明部4332は、発光し、複数の卵2を収容した容器20へ光を照射する。撮影部4331は、卵2及び容器20で反射した反射光を用いて、卵2を撮影する。
図14中には、光を矢印で示す。照明部4332及び撮影部4331は、例えば、コンベヤ13を搬送される容器20の上側に配置されている。なお、照明部4332は、容器20を介して卵2に光を照射してもよい。また、撮影部4331は、容器20を介して卵2を撮影してもよい。
【0104】
撮影部4331は、容器20に収容された複数の卵2を撮影した画像を表す画像データを作成する。撮影部4331は、画像データを分析部431へ入力する。画像取得部433は、画像データ取得部に対応する。画像取得部433は、ミラー、レンズ及び光学フィルタ等の図示しない光学部品を含んでいてもよい。画像取得部433は、照明部4332を有さず、外部からの光を利用してもよい。なお、画像取得部433は、卵2を透過した透過光又は蛍光を用いて卵2を撮影した画像を取得する形態であってもよい。また、画像取得部433は、反射光を用いて卵2を撮影した画像、透過光を用いて卵2を撮影した画像、及び蛍光を用いて卵2を撮影した画像のうち、複数の画像を取得する形態であってもよい。
【0105】
分析部431は、画像データに基づいて、容器20に収容された卵2の状態を判定し、判定結果に応じて、容器20に収容された卵2の分類先を決定する処理を行う。判定される卵2の状態は、具体的には、卵殻の破損の有無、破損の大きさの程度、卵殻の汚れの有無、汚れの程度、又は汚れの種類である。卵2を撮影した際に得られる画像は、卵2の状態に応じて異なる。このため、画像データに応じて、容器20に収容された卵2の状態を判定することが可能である。
【0106】
容器内画像分析装置43の分析部431が行う卵2を分類するための処理の手順は、
図9のフローチャートで示したS21~S26の処理と同様である。分析部431の演算部4311は、コンピュータプログラム432に従って以下の処理を実行する。演算部4311は、移動量検出装置36からの情報に基づいて、卵2を収容した容器20の位置を特定する。演算部4311は、位置を特定した一の容器20についての画像データを画像取得部433から取得する(S21)。演算部4311は、画像データを記憶部4314に記憶する。演算部4311は、次に、卵2を分類するための設定を行う設定処理を行う(S22)。
【0107】
設定処理の手順は、
図12のフローチャートで示したS221~S224の処理と同様である。演算部4311は、出荷すべき卵2の品質を指定する情報を取得する(S221)。例えば、演算部4311は、入力装置38から、品質を指定する情報をインタフェース部4318を通じて受け付ける。
【0108】
演算部4311は、次に、S232の処理で用いるべき学習モデルを選択する(S223)。学習モデル4315は、パラメータの異なる複数の学習モデルを含んでいる。S223では、演算部4311は、学習モデル4315が含んでいる複数の学習モデルから、S232の処理で用いるべき学習モデルを選択する。より詳しくは、演算部4311は、出荷すべき卵2の品質に応じて、適切な学習モデルを選択する。
【0109】
演算部4311は、次に、S25の処理で用いるべき卵2の分類の基準を調整する(S224)。S224では、演算部4311は、出荷すべき卵2の品質に応じて、卵2の分類の基準を調整する。例えば、演算部4311は、卵2の分類先を決定するために利用される卵殻の破損の程度の基準、又は卵殻の汚れの基準を、変更する。
【0110】
なお、演算部4311は、環境を表す情報を取得して、処理で用いるべき学習モデルを選択するか、又は卵2の分類の基準を調整してもよい。演算部4311は、環境を表す情報として、容器20の種類を表す容器情報を取得する。容器内画像分析装置43は、環境を表す情報を取得する環境情報取得部を備える。例えば、環境情報取得部は、使用者からの操作を受け付ける操作部4316である。演算部4311は、S223の処理において、環境情報取得部で取得した情報に応じて、判定処理で用いるべき学習モデルを複数の学習モデルの中から選択する。又は、演算部4311は、S224の処理において、環境情報取得部で取得した情報に応じて、判定結果に応じて卵2の分類先を決定する基準を調整する。
【0111】
S224が終了した・BR>縺A演算部4311は、処理をメインの処理へ戻す。なお、演算部4311は、S223及びS224の処理の内、いずれか一方のみを実行してもよい。また、演算部4311は、S221~S222の処理の内、一部のみを実行し、実行した処理で取得した情報に基づいてS223又はS224の処理を実行してもよい。演算部4311は、S21とS22との処理を逆の順で実行してもよい。また、演算部4311は、各容器20について行うS21及びS23~S26の処理とは別に、S22の処理を行ってもよい。例えば、複数の卵2を搬送する前に、演算部4311は、S22の処理を行う。
【0112】
演算部4311は、次に、画像データに基づいて、容器20に収容された卵2の状態を判定する判定処理を行う(S23)。判定処理の手順は、
図10のフローチャートで示したS231~S233の処理と同様である。演算部4311は、ルールベースで卵2の状態を判定する(S231)。S231では、演算部4311は、予め定められているルールに基づいて、画像データに応じて容器20に収容された卵2の状態を判定する。演算部4311は、従来知られている方法により、卵2の状態を判定する処理を行ってよい。例えば、演算部4311は、従来の画像処理により、卵殻の破損の有無、破損の大きさの程度、卵殻の汚れの有無、汚れの程度、又は汚れの種類を判定する。
【0113】
演算部4311は、次に、学習モデル4315を用いて、容器20に収容された卵2の状態を判定する(S232)。学習モデル4315は、容器20に収容された卵2を撮影した画像を表す画像データと卵殻の破損の有無、破損の大きさの程度、卵殻の汚れの有無、汚れの程度、又は汚れの種類を表す情報とを含む教師データを用いて、画像データから卵殻の破損の有無、破損の大きさの程度、卵殻の汚れの有無、汚れの程度、又は汚れの種類を判定するように、予め学習がなされている。例えば、学習モデル4315は、ニューラルネットワークを用いている。
【0114】
図15は、学習モデル4315の機能構成例を示す概念図である。学習モデル4315は、ニューラルネットワークを用いる。入力層は、画像データが入力される複数のノード4341を有する。例えば、容器20に収容された複数の卵2を撮影した画像に含まれる各画素での画素値が、いずれかのノード4341へ入力される。入力層へは、画像データに加えて、品質を指定する情報が入力されてもよい。中間層は、入力層のノード4341から入力されるデータにパラメータを用いて演算する複数のノード4342を有する。複数のノード4342は、出力層に含まれる複数のノード4343へデータを出力する。出力層は、中間層のノード4342から演算されたデータを受け付け、卵2の状態を出力する複数のノード4343を有する。例えば、一のノード4343は、卵殻に破損が存在する確率をスコアとして出力し、他のノード4343は、破損の大きさがある大きさである確率をスコアとして出力する。例えば、更に他のノード4343は、卵2に汚れが存在する確率をスコアとして出力し、更に他のノード4343は、汚れの程度が所定の程度である確率をスコアとして出力し、更に他のノード4343は、汚れの種類が特定の種類である確率をスコアとして出力する。中間層は複数層であってもよい。学習モデル4315は、ニューラルネットワークとして、CNN又はRNNを用いてもよい。
【0115】
学習モデル4315は、教師データを用いて予め学習がなされている。卵殻に破損及び汚れの無い多数の卵2を含む、状態が判明している多数の卵2について、卵2が容器20に収容された状態で画像データが取得され、教師データが作成される。容器20に収容された複数の卵2の状態を表す情報と容器20に収容された複数の卵2を撮影した画像を表す画像データとが含まれる。教師データに含まれる各卵2についての画像データが入力層の各ノード4241へ入力され、教師データに含まれる情報が示す各卵2の状態に合致したスコアを出力層の各ノード4343が出力されるように、各ノードの演算のパラメータが調整される学習がなされている。例えば、学習では、出力層の各ノード4343の出力値及び教師データから期待される出力値を変数とする誤差関数により誤差を計算し、誤差逆伝搬法によって当該誤差が最小となるように、各ノードの演算のパラメータを調整している。
【0116】
学習モデル4315の学習は容器内画像分析装置43で行ってもよい。例えば、状態が判明している卵2が容器20に収容された状態で画像データを画像取得部433で取得することで教師データが作成され、分析部431が学習のための情報処理を実行する。代替的に、容器内画像分析装置43の外部から教師データが入力され、分析部431が学習のための情報処理を実行してもよい。代替的に、容器内画像分析装置43の外部にある学習装置で学習が行われ、学習の結果に基づいて学習モデル4315が作成されていてもよい。学習装置は、コンピュータを用いて構成される。容器20に収容された複数の卵2の画像データが取得され、画像データが取得された後の卵2の状態が調べられ、画像データと調べられた卵2の状態を表す情報とを含む教師データが作成されてもよい。学習装置は、教師データを入力され、学習を行ってもよい。学習装置は、画像データと卵2の状態を表す情報とを入力され、入力されたデータ及び情報を含む教師データを作成し、作成した教師データを用いて学習を行ってもよい。
【0117】
学習モデル4315は、透過光又は蛍光を用いて卵2を撮影した画像を表す画像データが入力され、卵2の状態を出力する形態であってもよい。或いは、学習モデル4315は、反射光を用いて卵2を撮影した画像を表す画像データが入力される学習モデルと、透過光を用いて卵2を撮影した画像を表す画像データが入力される学習モデルと、蛍光を用いて卵2を撮影した画像を表す画像データが入力される学習モデルとのうち、複数の学習モデルを含んでいてもよい。
【0118】
演算部4311は、学習モデル4315の出力に応じて、卵2の状態を判定する。例えば、演算部4311は、卵殻に破損が存在する確率が所定の閾値未満である場合に卵殻に破損が無いと判定し、卵殻に破損が存在する確率が所定の閾値以上である場合に卵殻に破損があると判定する。例えば、演算部4311は、スコアが最大の値になる破損の大きさを、卵殻の破損の大きさの程度であると判定する。例えば、演算部4311は、卵殻に汚れが存在する確率が所定の閾値以上である場合に卵殻に汚れがあると判定し、卵殻に汚れが存在する確率が所定の閾値未満である場合に卵殻に汚れは無いと判定する。例えば、演算部4311は、スコアが最大の値になる汚れの程度を、卵殻の汚れの程度であると判定する。例えば、演算部4311は、スコアが最大の値になる汚れの種類を、卵殻の汚れの種類であると判定する。
【0119】
また、学習モデル4315は、卵殻の破損の有無を判定するための学習モデル、卵殻の破損の大きさの程度を判定するための学習モデル、卵殻の汚れの有無を判定するための学習モデル、卵殻の汚れの程度を判定するための学習モデル、又は卵殻の汚れの種類を判定するための学習モデルを、個別に含んでいてもよい。S232では、演算部4311は、夫々の学習モデルを用いて夫々の判定を行う。
【0120】
また、演算部4311は、反射光を用いて卵2を撮影した画像を表す画像データを入力した学習モデルの出力と、透過光を用いて卵2を撮影した画像を表す画像データを入力した学習モデルの出力と、蛍光を用いて卵2を撮影した画像を表す画像データを入力した学習モデルの出力とのうち、複数の出力を組み合わせて、卵2の状態を判定してもよい。S232では、演算部4311は、S223で選択された学習モデルを使用する。S231の処理とS232の処理とは逆の順番で実行されてもよく、並列に実行されてもよい。
【0121】
演算部4311は、次に、S231での判定結果及びS232での判定結果に基づいて、容器20に収容された卵2の状態の判定結果を確定する(S233)。S233では、S231のルールベースでの判定結果とS232の学習モデル4315を用いた判定結果とを組み合わせて、卵2の判定結果を確定する。ルールベースでの判定結果と学習モデルを用いた判定結果とを組み合わる方法は、S123での処理と同様である。S233が終了した後、演算部4311は、処理をメインの処理へ戻す。ルールベースでの判定と学習モデル4315を用いた判定とを組み合わせることにより、適切な判定を行うことができる。
【0122】
演算部4311は、次に、容器20に収容された卵2の状態の判定結果を出力する(S24)。S24では、演算部4311は、判定結果を含む画像を表示部4317に表示させる。例えば、演算部4311は、卵殻に破損のある卵2の数、又は卵殻に汚れのある卵2の数を表示部4317に表示する。演算部4311は、S231のルールベースでの判定結果とS232の学習モデル4315を用いた判定結果との夫々を表示部4317に表示させてもよい。
【0123】
演算部4311は、次に、容器20に収容された卵2の状態の判定結果に応じて、容器20に収容された卵2の分類先を決定する(S25)。演算部4311は、容器20単位で卵2の分類先を決定する。例えば、演算部4311は、容器20に収容された複数の卵2の中に卵殻の破損の程度が所定の基準を超過している卵2がある場合、又は卵殻の汚れの程度が所定の基準を超過している卵2がある場合に、当該容器20を特定し、一般の商店へ出荷される容器20とは別の場所へ移動させる。例えば、容器20に収容された全ての卵2に卵殻の破損及び汚れが無い、又は全ての卵2の卵殻の破損の程度若しくは汚れの程度が所定の基準以下である場合に、容器20に収容された複数の卵2の分類先は一般の商店へ出荷可能な卵2のグループであると決定する。また、演算部4311は、卵殻の汚れの種類に応じて卵2を分類してもよい。S25では、演算部4311は、S224で調整した卵2の分類の基準を用いて、処理を実行する。
【0124】
演算部4311は、次に、インタフェース部4318を通じて、容器20に収容された卵2の分類先を表す分類先データを出力する(S26)。例えば、演算部4311は、卵2の分類先を表す画像を表示部4317に表示させる。容器20に収容された卵2が商店へ出荷される卵2には適さない卵2に分類されることを表す画像が表示部4317に表示された場合は、使用者は、卵2を容器20から取り出す。なお、卵分類システム100は、商店へ出荷される卵2には適さない卵2が収容された容器20を取り分ける図示しない装置を備えてもよい。この装置は、容器内画像分析装置43から出力された分類先データに基づいて、容器20を取り分ける。分析部431は、S21~S26の処理を、コンベヤ13を搬送される容器20の夫々について実行する。分析部431は、複数の容器20についての処理を順次的に行ってもよく、並列に行ってもよい。
【0125】
以上詳述した如く、本実施形態においては、破卵検出装置41、卵画像分析装置42又は容器内画像分析装置43は、卵2を撮影した画像を表す画像データを取得し、学習モデルによって、画像データに応じて卵2の状態を判定し、判定結果に応じて卵2の分類先を決定する。卵2の状態を判定するために学習モデルを利用することにより、状態の異なる種々の卵2が混在する中でも、より正確に卵2の状態を判定し、より適切に卵2を分類することが可能となる。また、本実施形態においては、破卵検出装置41、卵画像分析装置42又は容器内画像分析装置43は、卵2の状態として、卵殻の破損の有無、卵殻の破損の程度、卵殻の色、色の均一性、卵殻の汚れの有無、汚れの程度、汚れの種類、卵殻の奇形の有無、奇形の種類、卵殻の表面性状、卵殻の模様、又は卵殻上の印字を判定する。これらの卵2の状態は、卵2の品質に大きく影響する。これらの卵2の状態に応じて卵2を分類することにより、適切な品質の卵2を選別することが可能となる。
【0126】
また、容器内画像分析装置43は、容器20に収容した卵2を撮影した画像を表す画像データに応じて卵2の状態を判定し、卵2を分類する。容器20に収容した卵2は、出荷直前の状態であり、容器20に収容された複数の卵2の中に卵殻が破損した卵2又は卵殻に汚れのある卵2が混入していた場合は、複数の卵2からなる製品の品質が低下する。卵2が容器20に収容された状態で卵殻の破損の程度、卵殻の汚れの程度、又は卵殻の汚れの種類を判定して卵2を分類することにより、低品質の卵2が出荷されることを防止することが可能となる。
【0127】
本実施形態では、卵画像分析装置42は、学習モデル4215を再学習することが可能である。卵画像分析装置42の分析部421は、再学習のための処理を実行する。
図16は、再学習の処理の手順を示すフローチャートである。分析部421の演算部4211は、コンピュータプログラム422に従って以下の処理を実行する。再学習を行う際には、状態が判明している卵2を撮影した画像を表す画像データを取得し、卵2の状態を表す情報と取得した画像データとを教師データとして、再学習を行う。まず、使用者は、搬送装置11を停止させた状態で、状態が判明している卵2を搬送装置11の搬送路上に配置する。分析部421は、使用者が操作部4216を操作することによって、卵2の状態を表す情報を含む、卵2の状態が判明している卵2に関する設定を受け付ける(S41)。演算部4211は、受け付けた設定の内容を表すデータを記憶部4214に記憶する。S41の処理は受付部に対応する。
【0128】
図17は、再学習の際に表示部4217に表示される画面例を示す模式図である。
図17は、操作部4216及び表示部4217がタッチパネルを構成している例を示しており、画面中には操作部4216の一部である操作ボタンが含まれている。
図17Aは、設定時に表示部4217に表示される画面の例を示す。使用者が操作部4216を操作することによって設定が入力される。配置される卵2の状態を表す情報が入力される。
図17には、卵2の卵殻の色が白色であり、卵2の状態の種類が茶色汚れであり、卵2の状態のレベルがLv3であることが入力された例を示す。Lvはレベルを意味している。レベルの数値は卵殻の汚れの程度を表しており、数値が大きいほど卵殻の汚れの程度は大規模になる。
図17Aの例では、卵殻の色が白色であり卵殻の汚れの種類が茶色汚れであり汚れの程度がLv3である卵2が配置されるという設定が入力されている。
【0129】
演算部4211は、次に、画像データを取得する(S42)。S42では、
図17Aに示す画面上で使用者が開始ボタンを押下する等、使用者が操作部4216を操作することにより、演算部4211は、画像データの取得の指示を受け付ける。搬送装置11は卵2を搬送し、演算部4211は、S21の処理と同様にして、画像取得部423から、夫々の卵2を撮影した画像を表した画像データを取得する。演算部4211は、画像データを記憶部4214に記憶する。
【0130】
演算部4211は、次に、判定処理を行う(S43)。S43では、
図17Aに示す画面上で使用者が終了ボタンを押下する等、使用者が操作部4216を操作することにより、演算部4211は、判定の指示を受け付ける。演算部4211は、S23の処理と同様にして、取得した画像データに基づいて卵2の状態を判定する判定処理を行う。演算部4211は、卵2の状態の判定結果を表示部4217に表示させる。
図17Bは、判定結果が表示された画面例を示す。卵2の夫々について、卵2の状態の判定結果が示されている。正常卵は、卵殻に汚れが無いことを意味している。
図17Bに示す例では、設定された卵殻の汚れの程度がLv3であるのに対して、判定結果がLv3とは異なっている卵2が多く、正確に判定が行われていないことが示唆されている。
【0131】
演算部4211は、次に、画像データのチェックを行う(S44)。画像取得部423等の機器の不具合、又は迷光等によって、画像データが異常になることがある。画像データが異常である場合は、画像データを利用した再学習は不正確な学習になる。このため、画像データのチェックが必要となる。S44では、
図17Bに示す画面上で使用者がチェックボタンを押下する等、使用者が操作部4216を操作することにより、演算部4211は、チェックの指示を受け付ける。演算部4211は、機器の不具合の有無を判定するか、又は所定の基準に基づいて画像データに異常があるか否かを判定する等の方法により、画像データのチェックを行う。
【0132】
演算部4211は、次に、チェックの結果、画像データに異常があったか否かを判定する(S45)。異常があった場合は(S45:YES)、異常があったことを表示部4217に表示させ、処理を終了する。異常が無かった場合は(S45:NO)、異常が無かったことを表示部4217に表示させ、次に、再学習の処理を行う(S46)。
【0133】
図17Cは、画像データに異常が無かった場合の画面例を示す。画像データに異常が無いことが表示されており、教示ボタンが使用可能になっている。
図17Cに示す画面上で使用者が教示ボタンを押下する等、使用者が操作部4216を操作することにより、演算部4211は、再学習の指示を受け付ける。
図17Dは、画像データに異常がある場合の画面例を示す。画像データに異常があることが表示されている。教示ボタンが使用できないようになっており、使用者は再学習の指示を入力することができない。
【0134】
S46では、演算部4211は、S41で受け付けた設定に含まれる卵2の状態を表す情報と、S42で取得した各卵2についての画像データとの関係を教師データとして、学習モデル4215の機械学習を行う。学習モデル4215は、画像データが入力層のノード4241へ入力され、設定に応じた卵2の状態が出力層のノード4243から出力されることができるように、教師データに基づいて中間層の各ノード4242のパラメータを調整する機械学習を行う。機械学習によって、再学習された学習モデル4215が得られる。S46の処理は再学習部に対応する。
【0135】
分析部421は、以上で再学習の処理を終了する。S41~S46の処理は必要に応じて実行される。S41~S46の処理では、複数の卵2についての画像データの何れかに異常があれば学習モデル4215の再学習を行わない。代替的に、分析部421は、画像データに異常のある卵2と画像データに異常の無い卵2との両方がある場合に、画像データに異常の無い卵2のみについて再学習を行ってもよい。
【0136】
図17には状態が同じカテゴリーに分けられる複数の卵2を用いて再学習を行う例を示したが、卵画像分析装置42は、状態が異なるカテゴリーに分けられる複数の卵2を用いて再学習を行う形態であってもよい。
図18は、再学習の際に表示部4217に表示される他の画面例を示す模式図である。複数の列に並べられる複数の卵2の夫々について、卵殻の色、汚れの種類及び汚れの程度が入力されている。卵2が配置される位置を示すために、複数の列の一つを構成している列Noが入力されている。
図17に示した例と同様にして、画像データが取得され、判定が行われ、画像データのチェックが行われ、各卵2の状態を表す情報と各卵2を撮影した画像を表す画像データとを教師データとして、再学習が行われる。
【0137】
図17及び
図18には、卵殻の色及び汚れに関して再学習を行う例を示したが、卵画像分析装置42は、卵殻の破損の有無、破損の程度、卵殻の色の均一性、卵殻の奇形の有無、奇形の種類、卵殻の表面性状、卵殻の模様、又は卵殻上の印字に関して再学習を行ってもよい。また、再学習の処理では、卵画像分析装置42は、卵2を撮影した画像を表す画像データを先に取得し、後から卵2の状態に関する設定を行ってもよい。又は、卵画像分析装置42は、卵2の状態を当初設定した状態の内容とは異なる内容に修正してから、再学習を行ってもよい。
【0138】
なお、卵画像分析装置42は、学習を外部で行う形態であってもよい。
図19は、学習を外部で行う卵画像分析装置42の機能構成例を示すブロック図である。分析部421は、通信部4219を備える。通信部4219は、インターネット等の通信ネットワークNに接続する。通信ネットワークNには、記憶装置7が接続されている。分析部421は、通信部4219により、通信ネットワークNを介して記憶装置7との間で通信を行う。
【0139】
図20は、記憶装置7の内部構成例を示すブロック図である。記憶装置7は、サーバ装置等のコンピュータである。記憶装置7は、演算部71と、メモリ72と、ハードディスク等の不揮発性の記憶部73と、通信部74とを備えている。通信部74は、通信ネットワークNに接続する。記憶部73は、コンピュータプログラム731を記憶している。演算部71は、コンピュータプログラム731に従って処理を実行する。
【0140】
S46では、分析部421は、S41で受け付けた設定に含まれる卵2の状態を表す情報とS42で取得した各卵2についての画像データとを含む教師データを、記憶装置7へ送信する。記憶装置7は、通信部74で教師データを受信し、演算部71は教師データを記憶部73に記憶する。演算部71は、教師データを用いて、学習モデルの機械学習を行い、学習モデルの学習結果を表した学習結果データを記憶部73に記憶する。更に、演算部71は、通信部74に卵画像分析装置42へ学習結果データを送信させる。分析部421は、通信部4219で学習結果データを受信し、演算部4211は、学習結果データに基づいて学習モデル4215を更新する。このようにして、学習モデル4215の再学習が行われる。
【0141】
破卵検出装置41及び容器内画像分析装置43でも、卵画像分析装置42と同様にS41~S46の処理を実行することにより、学習モデルの再学習を行うことができる。破卵検出装置41は、学習モデル4115の再学習を行う。容器内画像分析装置43は、学習モデル4315の再学習を行う。
【0142】
以上詳述した如く、本実施形態においては、破卵検出装置41、卵画像分析装置42及び容器内画像分析装置43は、卵2の状態を表す情報を受け付け、卵2を撮影した画像を表す画像データを取得し、卵2の状態を表す情報及び画像データを教師データとして学習モデルの再学習を行う。実際の卵2の状態に応じて学習モデルが再学習されるので、より正確に卵2の状態を判定することができるように学習モデルが更新される。このため、より正確に卵2の状態を判定し、より適切に卵2を分類することが可能となる。
【0143】
本実施形態においては、破卵検出装置41、卵画像分析装置42及び容器内画像分析装置43が自身で卵2の状態を判定する形態を示したが、卵分類システム100は、破卵検出装置41、卵画像分析装置42又は容器内画像分析装置43の外部で卵2の状態を判定する形態であってもよい。例えば、学習済みの学習モデルを含んだ判定装置が破卵検出装置41、卵画像分析装置42又は容器内画像分析装置43の外部に設けられている。破卵検出装置41、卵画像分析装置42又は容器内画像分析装置43は、画像データを取得し、画像データを判定装置へ入力する。判定装置は、学習モデルによって、入力された画像データに応じて、卵2の状態を判定する。判定装置は、判定結果を破卵検出装置41、卵画像分析装置42又は容器内画像分析装置43へ入力し、破卵検出装置41、卵画像分析装置42又は容器内画像分析装置43は、入力された判定結果に応じて、卵2の分類先を決定する。判定装置は、コンピュータを用いて構成されている。判定装置は、複数のコンピュータで構成されてもよく、クラウドを利用して実現されてもよい。
【0144】
本発明は上述した実施の形態の内容に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。即ち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態も本発明の技術的範囲に含まれる。
【0145】
(付記1)
卵を分類するための卵分類システムにおいて、
卵の分類先を決定する第1の卵分類装置及び第2の卵分類装置と、
前記第1の卵分類装置又は前記第2の卵分類装置が決定した分類先に応じて、卵を分配する分配装置とを備え、
前記第1の卵分類装置は、
卵を撮影した画像を表す画像データを取得する画像データ取得部と、
卵の状態を表す情報及び前記卵についての画像データを含む教師データを用いて学習された学習モデルによって、前記画像データ取得部が取得した画像データに応じて、卵の状態を判定する判定部と、
卵の状態の判定結果に応じて、卵の分類先を決定する決定部とを有し、
前記第2の卵分類装置は、卵に打撃を付与することによって発生する現象を表す打撃データ及び卵殻の状態を表す情報を含む教師データを用いて学習された学習モデルを有し、卵に打撃を付与することによって発生する現象を表す打撃データを取得し、前記学習モデルによって、取得した前記打撃データに基づいて卵殻の状態を判定し、卵殻の状態の判定結果に応じて、卵の分類先を決定すること
を特徴とする卵分類システム。
【0146】
(付記2)
卵の分類先を決定する第3の卵分類装置を更に備え、
前記第3の卵分類装置は、卵の内部の状態を表す情報及び前記卵を透過した光を表す透過光データを含む教師データを用いて学習された深層学習モデルを有し、卵を透過した光を表す透過光データを取得し、前記深層学習モデルによって、取得した前記透過光データに基づいて卵の内部の状態を判定し、卵の内部の状態の判定結果に応じて、卵の分類先を決定し、
前記分配装置は、前記第1の卵分類装置、前記第2の卵分類装置又は前記第3の卵分類装置が決定した分類先に応じて、卵を分配すること
を特徴とする付記1に記載の卵分類システム。
【0147】
(付記3)
卵を分類するための卵分類システムにおいて、
卵の分類先を決定する第1の卵分類装置及び第3の卵分類装置と、
前記第1の卵分類装置又は前記第3の卵分類装置が決定した分類先に応じて、卵を分配する分配装置とを備え、
前記第1の卵分類装置は、
卵を撮影した画像を表す画像データを取得する画像データ取得部と、
卵の状態を表す情報及び前記卵についての画像データを含む教師データを用いて学習された学習モデルによって、前記画像データ取得部が取得した画像データに応じて、卵の状態を判定する判定部と、
卵の状態の判定結果に応じて、卵の分類先を決定する決定部とを有し、
前記第3の卵分類装置は、卵の内部の状態を表す情報及び前記卵を透過した光を表す透過光データを含む教師データを用いて学習された深層学習モデルを有し、卵を透過した光を表す透過光データを取得し、前記深層学習モデルによって、取得した前記透過光データに基づいて卵の内部の状態を判定し、卵の内部の状態の判定結果に応じて、卵の分類先を決定すること
を特徴とする卵分類システム。
【符号の説明】
【0148】
11 搬送装置
12 分配装置
13、14 コンベヤ
2 卵
20 容器
41 破卵検出装置
42 卵画像分析装置
43 容器内画像分析装置
411、421、431 分析部
4111、4211、4311 演算部
4115、4215、4315 学習モデル
412、422、432 コンピュータプログラム
413、423、433 画像取得部
4131、4231、4331 撮影部
4132、4232、4332 照明部
7 記憶装置
N 通信ネットワーク