IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社キーエンスの特許一覧

特開2024-24371コロニー計数装置、制御方法およびプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024024371
(43)【公開日】2024-02-22
(54)【発明の名称】コロニー計数装置、制御方法およびプログラム
(51)【国際特許分類】
   C12M 1/34 20060101AFI20240215BHJP
【FI】
C12M1/34 B
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2022127158
(22)【出願日】2022-08-09
(71)【出願人】
【識別番号】000129253
【氏名又は名称】株式会社キーエンス
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】松村 晋吾
(72)【発明者】
【氏名】関谷 傑
(72)【発明者】
【氏名】藤 健太
【テーマコード(参考)】
4B029
【Fターム(参考)】
4B029AA07
4B029BB02
4B029BB06
4B029CC02
4B029CC07
4B029EA20
4B029FA02
4B029FA10
4B029GA01
4B029GB02
4B029GB10
4B029HA10
(57)【要約】
【課題】コロニーの計数精度を向上させる。
【解決手段】コロニー計数装置は、検査個体を撮像して当該検査個体の画像を生成し、初期状態の検査個体の画像を基準画像として登録し、基準画像に含まれる残渣を特定するとともに、基準画像と、培養後の検査個体の画像である検査画像とにおける二以上の共通の特徴箇所の各々のズレに基づいて、基準画像に含まれる残渣に対応する検査画像における残渣の位置を特定し、残渣の位置に基づいて、残渣をコロニーとしての計数からは除外してコロニーの個数を計数する。
【選択図】図59
【特許請求の範囲】
【請求項1】
検査個体を撮像して当該検査個体の画像を生成する撮像部と、
前記撮像部により生成された初期状態の検査個体の画像を基準画像として登録する登録部と、
前記登録部により登録された基準画像に含まれる残渣を特定するとともに、当該基準画像と、前記撮像部により生成された培養後の前記検査個体の画像である検査画像とにおける二以上の共通の特徴箇所の各々のズレに基づいて、当該基準画像に含まれる残渣に対応する当該検査画像における残渣の位置を特定する残渣特定部と、
前記残渣特定部により特定される残渣の位置に基づいて、当該残渣をコロニーとしての計数からは除外して前記検査画像に含まれるコロニーの個数を計数する計数部と、
を有するコロニー計数装置。
【請求項2】
請求項1に記載のコロニー計数装置であって、
前記登録部により基準画像を登録する際に、当該基準画像と、当該基準画像が示す検査個体の識別情報とを関連付けて記憶する記憶部と、
前記登録部により登録された基準画像を読み出すための検査個体の識別情報の入力を受け付ける受付部と、
をさらに有し、
前記残渣特定部は、前記受付部により受け付けられた前記検査個体の識別情報に関連付けられている基準画像に含まれる残渣に対応する検査画像における残渣の位置を特定する、コロニー計数装置。
【請求項3】
請求項2に記載のコロニー計数装置であって、
前記撮像部に撮像条件を設定する設定部をさらに有し、
前記登録部は、前記培養前の検査個体を撮像する際に前記撮像部に適用された撮像条件を前記検査個体の識別情報に関連付けて前記記憶部に記憶させるように構成されており、
前記設定部は、前記検査個体の培養後に前記受付部により再び受け付けられた前記検査個体の識別情報に関連付けられている撮像条件を前記記憶部から読み出し、前記撮像部に当該撮像条件を設定するように構成されており、
前記撮像部は、前記設定部により設定された撮像条件にしたがって培養後の前記検査個体を撮像してコロニーをカウントするための検査画像を取得するように構成されている、を有するコロニー計数装置。
【請求項4】
請求項3に記載のコロニー計数装置であって、
前記検査個体を照明する照明部をさらに有し、
前記設定部は、前記照明部に照明条件を設定するように構成されており、
前記登録部は、前記培養前の検査個体を撮像する際に前記照明部に設定された前記照明条件を前記検査個体の識別情報に関連付けて前記記憶部に記憶させるように構成されており、
前記設定部は、前記検査個体の培養後に前記受付部により再び受け付けられた前記検査個体の識別情報に関連付けられている前記照明条件を前記記憶部から読み出し、前記照明部に当該照明条件を設定するように構成されており、
前記撮像部は、前記設定部により設定された照明条件にしたがって培養後の前記検査個体が照明された状態で、当該検査個体を撮像してコロニーをカウントするための検査画像を取得するように構成されている、コロニー計数装置。
【請求項5】
請求項1に記載のコロニー計数装置であって、
前記残渣特定部は、前記検査個体を収容する円筒形の透明容器の上面または下面の周縁部に付与されている目印を、前記二以上の共通の特徴箇所のうちの少なくとも一つの特徴箇所として認識する、コロニー計数装置。
【請求項6】
請求項5に記載のコロニー計数装置であって、
前記残渣特定部は、線状の前記目印を少なくとも一つの特徴箇所として認識する、コロニー計数装置。
【請求項7】
請求項5に記載のコロニー計数装置であって、
前記円筒形の透明容器は、円筒形で有底の培地が形成された内側透明容器と、当該内側透明容器の蓋となる円筒形の外側透明容器とを有し、
前記残渣特定部は、前記内側透明容器の底面の周縁部に付与されている目印を、前記二以上の共通の特徴箇所のうちの少なくとも一つの特徴箇所として認識する、コロニー計数装置。
【請求項8】
請求項1に記載のコロニー計数装置であって、
前記残渣特定部は、前記検査個体を収容する容器、前記検査個体に付着している残渣、または、前記検査個体の一部を前記二以上の共通の特徴箇所のうちの少なくとも一つの特徴箇所として認識する、コロニー計数装置。
【請求項9】
請求項1に記載のコロニー計数装置であって、
前記培養前の検査個体から取得された前記基準画像と、前記撮像部により取得される前記培養後の検査個体の動画像と、を重畳して表示する表示部をさらに有する、コロニー計数装置。
【請求項10】
請求項9に記載のコロニー計数装置であって、
前記検査個体を載置されるステージと、
前記ステージ上に設けられ、前記ステージに載置された前記検査個体に対するユーザによる手動での位置合わせを補助する位置合わせ部材と、
を有し、
前記位置合わせ部材は、前記検査個体を収容する容器に対して少なくとも二点で接触して前記容器を支持するように形成された形状を有する、コロニー計数装置。
【請求項11】
請求項1に記載のコロニー計数装置であって、
複数の検査個体の各々のカウント結果が入力されるセルを含むカウント表を作成し、記憶部に記憶させる表管理部と、
前記表管理部により作成された前記カウント表を表示する表示部と、
前記表示部に表示される前記カウント表に含まれる複数のセルの中から対象セルを特定するセル特定部と、
前記対象セルに対して前記検査個体の識別情報と前記基準画像とを関連付けて登録する登録部と、を有し、
前記計数部は、前記対象セルが特定されると、前記対象セルに関連付けられている前記基準画像を前記記憶部から読み出し、当該基準画像に含まれる残渣を低減して前記検査画像に含まれているコロニーの個数を計数し、前記計数されたコロニーの個数を前記対象セルに入力または関連付けるように構成されている、コロニー計数装置。
【請求項12】
請求項11に記載のコロニー計数装置であって、
前記カウント表は、前記検査個体ごとに第一セルと第二セルとを有し、
前記第一セルは、前記基準画像が取得済みであるかどうかを示し、
前記第二セルは、前記第一セルに関連付けられており、前記コロニーの個数を示し、
前記対象セルは、前記第二セルである、コロニー計数装置。
【請求項13】
請求項12に記載のコロニー計数装置であって、
前記撮像部は、
前記第一セルがクリックされると、前記培養前の検査個体を撮像して前記基準画像を取得し、
前記第二セルがクリックされると、前記第一セルに関連付けられている撮像条件を用いて、前記培養後の検査個体を撮像して前記検査画像を取得する、ように構成されている、コロニー計数装置。
【請求項14】
請求項1に記載のコロニー計数装置であって、
前記計数部は、前記残渣の影響を軽減する第一モードと、前記残渣の影響を軽減しない第二モードとを有し、
前記コロニー計数装置は、前記第一モードまたは前記第二モードを選択するためのアイコンを表示する表示部を有する、コロニー計数装置。
【請求項15】
請求項2に記載のコロニー計数装置であって、
前記記憶部に記憶されている複数の候補画像から前記基準画像を指定する指定部と、
前記指定部により指定された前記基準画像に関連付けられている培地の種類、希釈倍率、前記検査個体の名称、および、前記検査個体の識別情報のうち少なくとも一つを前記記憶部から読み出して表示部に表示させる表示制御部と、
を有する、コロニー計数装置。
【請求項16】
請求項15に記載のコロニー計数装置であって、
前記検査個体の識別情報は、前記検査個体を収容する容器の識別情報である、コロニー計数装置。
【請求項17】
請求項1に記載のコロニー計数装置であって、
前記残渣特定部は、
前記基準画像における前記残渣の位置を特定し、
前記二以上の共通の特徴箇所に基づき、前記検査画像の位置および回転角度と、前記基準画像の位置および回転角度の相対的なズレを求め、
前記計数部は、
前記残渣の位置と、前記相対的なズレに基づいて、前記検査画像にマスク領域を設定し、
前記マスク領域が設定された前記検査画像から前記コロニーの個数を計数する、
ように構成されている、コロニー計数装置。
【請求項18】
検査個体を撮像して当該検査個体の残渣の影響を低減するための基準画像を取得するとともに、培養後の前記検査個体を撮像してコロニーをカウントするための検査画像を取得する撮像部と、
前記基準画像におけるコロニーの個数と、前記検査画像におけるコロニーの個数と、を計数し、前記検査画像におけるコロニーの個数から前記基準画像におけるコロニーの個数を減算して、培養後の前記検査個体におけるコロニーの個数を求める計数部と、
を有するコロニー計数装置。
【請求項19】
コロニー計数装置の制御方法であって、
検査個体を撮像して当該検査個体の残渣の影響を低減するための基準画像を取得することと、
培養後の前記検査個体を撮像してコロニーをカウントするための検査画像を取得することと、
前記基準画像に含まれる残渣を特定することと、
前記基準画像と前記検査画像とにおける二以上の共通の特徴箇所の各々のズレに基づいて、当該基準画像に含まれる残渣に対応する当該検査画像における残渣の位置を特定することと、前記特定された残渣の位置に基づいて、当該残渣をコロニーとしての計数からは除外して前記検査画像に含まれるコロニーの個数を計数することと、
を有する、コロニー計数装置の制御方法。
【請求項20】
コロニー計数装置を制御するコンピュータにより実行されるプログラムであって、前記コンピュータに、
検査個体を撮像して当該検査個体の残渣の影響を低減するための基準画像を取得させ、
培養後の前記検査個体を撮像してコロニーをカウントするための検査画像を取得させ、
前記基準画像に含まれる残渣を特定させ、
前記基準画像と前記検査画像とにおける二以上の共通の特徴箇所の各々のズレに基づいて、当該基準画像に含まれる残渣に対応する当該検査画像における残渣の位置を特定させ、
前記特定された残渣の位置に基づいて、当該残渣をコロニーとしての計数からは除外して前記検査画像に含まれるコロニーの個数を計数させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コロニー計数装置、制御方法およびプログラムに関する。
【背景技術】
【0002】
食品を製造する工場ではコロニーカウンタを用いて菌が商品に混入しているかどうかが検査される。検査者は、シャーレ内に培地を形成し、培地に食品サンプルを投入し、所定期間にわたり保温庫等に保管する。その後、検査者は、保温庫からシャーレを取り出して、コロニーカウンタでコロニー(細菌の群体)をカウントする。このようにコロニーカウンタのカウント精度は食品の衛生管理上で重要である。
【0003】
ところで、シャーレにゴミなどの残渣が着すると、残渣をコロニーとして誤ってカウントしてしまうことがある。特許文献1によれば、コロニーの特徴色を予め記憶しておき、特徴色に基づいてコロニーをカウントすることが提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2016-015944号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1の発明は、コロニーの色と残渣の色とが異なる場合には有効であるが、コロニーの色と残渣の色とが同色の場合には残渣をコロニーとしてカウントしてしまう。そこで、本発明は、コロニーの計数精度を向上することを目的とする。
【課題を解決するための手段】
【0006】
本発明は、たとえば、
検査個体を撮像して当該検査個体の画像を生成する撮像部と、
前記撮像部により生成された初期状態の検査個体の画像を基準画像として登録する登録部と、
前記登録部により登録された基準画像に含まれる残渣を特定するとともに、当該基準画像と、前記撮像部により生成された培養後の前記検査個体の画像である検査画像とにおける二以上の共通の特徴箇所の各々のズレに基づいて、当該基準画像に含まれる残渣に対応する当該検査画像における残渣の位置を特定する残渣特定部と、
前記残渣特定部により特定される残渣の位置に基づいて、当該残渣をコロニーとしての計数からは除外して前記検査画像に含まれるコロニーの個数を計数する計数部と、
を有するコロニー計数装置を提供する。
【発明の効果】
【0007】
本発明によれば、コロニーの計数に関するユーザの負担が軽減される。
【図面の簡単な説明】
【0008】
図1】コロニー計数装置を示す図。
図2】ヘッド装置の構造を説明する図。
図3】ヘッド装置の電気的な構成を説明する図。
図4】制御装置の電気的な構成を説明する図。
図5】ユーザインタフェース(UI)を説明する図。
図6】サンプルデータベースからカウント表を作成するUIを説明する図。
図7】サンプル名の入力補助に関するUIを説明する図。
図8】新規にカウント表を作成するUIを説明する図。
図9】表計算ソフトのシートを説明する図。
図10】過去のカウント表を流用するためのUIを説明する図。
図11】統計処理の設定を容易化するUIを説明する図。
図12】統計処理の設定を容易化するUIを説明する図。
図13】親子関係に関するUIを説明する図。
図14】親子関係に関するUIを説明する図。
図15】列要素を追加するためのUIを説明する図。
図16】検査時のUIを説明する図。
図17】検査条件等を変更するUIを説明する図。
図18】カウントを指示する際のUIを説明する図。
図19】カウント結果をセルに登録する際のUIを説明する図。
図20】対象セルの自動特定を示すUIを説明する図。
図21】カウント結果の単位を切り替えるUIを説明する図。
図22】セルに表示する情報を切り替えるUIを説明する図。
図23】計数条件を再設定するUIを説明する図。
図24】ボタンへの機能の割り当ての遷移を説明する図。
図25】検査条件等を変更するためのUIを説明する図。
図26】過去に作成されたカウント表を呼び出すUIを説明する図。
図27】検査リストを説明する図。
図28】ユーザ認証札を説明する図。
図29】自由列のセルへ情報を登録するUIを説明する図。
図30】自由列のセルへ情報を登録するUIを説明する図。
図31】コード(シンボル)の読み取りUIを説明する図。
図32】シンボルのデコード結果を説明する図。
図33】レポートを説明する図。
図34】PCにより実行される処理を示すフローチャート。
図35】ヘッド装置により実行される処理を示すフローチャート。
図36】サンプルデータベースの編集を示すフローチャート。
図37】カウント表の編集を説明するフローチャート。
図38】カウント表の特定を説明するフローチャート。
図39】コロニーのカウント方法を説明するフローチャート。
図40】自由列のセルへ情報を登録する方法を説明するフローチャート。
図41】シャーレに付与された識別画像を説明する図。
図42】培養前画像(基準画像)を説明する図。
図43】培養後画像(基準画像)を説明する図。
図44】培養後画像(基準画像)を説明する図。
図45】残渣低減を有効化するUIを説明する図。
図46】残渣低減が関与するセルを説明する図。
図47】基準画像を取得するためのUIを説明する図。
図48】検査画像を取得するためのUIを説明する図。
図49】検査画像を取得するためのUIを説明する図。
図50】基準画像などを読み出すためのUIを説明する図。
図51】基準画像に関連付けられている検査条件を表示することを説明する図。
図52】複数の目印を説明する図。
図53】手動位置合わせを補助するUIを説明する図。
図54】手動位置合わせを補助するUIを説明する図。
図55】カウント結果を表示するUIを説明する図。
図56】カウント結果がセルに入力されたことを説明する図。
図57】複数の目印の他の例を説明する図。
図58】第一の残渣低減アルゴリズムを説明する図。
図59】第二の残渣低減アルゴリズムを説明する図。
図60】カウント表を用いずに基準画像を取得する方法を示すフローチャートである。
図61】カウント表を用いずに検査画像を取得してコロニーをカウントする方法を示すフローチャート。
図62】カウント表を用いて基準画像を取得する方法を示すフローチャートである。
図63】カウント表を用いて検査画像を取得してコロニーをカウントする方法を示すフローチャート。
図64】第一のカウントアルゴリズムにしたがったカウント方法を示すフローチャート。
図65】第二のカウントアルゴリズムにしたがったカウント方法を示すフローチャート。
図66】第三のカウントアルゴリズムにしたがったカウント方法を示すフローチャート。
【発明を実施するための形態】
【0009】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴のうち二つ以上の特徴が任意に組み合わされてもよい。また、同一若しくは同様の構成には同一の参照番号を付し、重複した説明は省略する。
【0010】
[コロニー計数装置]
図1はコロニー計数装置1を示している。なお、コロニー計数装置1は、ヘッド装置1aと、後述される制御装置(パーソナルコンピュータ(PC))1bとを含む。ヘッド装置1aとPC1bとは、たとえば、ユニバーサルシリアルバス(USB)ケーブルで有線接続されてもよいし、無線により接続されてもよい。
【0011】
ヘッド装置1aは、上部ユニット2、支持ユニット3および下部ユニット4を有している。ヘッド装置1aの内部には、カメラおよび照明装置が設けられている。支持ユニット3は、上部ユニット2と下部ユニット4との間に存在し、上部ユニット2を支持している。下部ユニット4の頂面にはステージ5が設けられている。ステージ5は、シャーレ15が載置される透過窓6と、透過窓6の中央にシャーレ15を位置決めするための位置決め部材7とが設けられている。下部ユニット4の正面には、操作部8とフロントカメラ10が設けられている。操作部8は、ユーザが指示を入力するための複数のスイッチ(例:第一ハードウエアボタン8a、第二ハードウエアボタン8b、第三ハードウエアボタン8c)などを含む。フロントカメラ10は、オプションであり、たとえば、二次元シンボル(バーコード)などを読み取る。フロントカメラ10は、ヘッド装置1の筐体の前面に設けられた凹部4aに、配置されている。下部ユニット4の側面には電源スイッチ9が設けられている。
【0012】
図2はヘッド装置1aの断面図である。上部ユニット2の下面付近には、落射照明を行うためのリング照明装置12が配置されている。落射照明とは、検査個体で反射した光を受光することで検査個体を観察するための照明手法である。リング照明装置12の上方にはメインカメラ11と光学系16とが配置されている。透過窓6の下方にもリング照明装置13が配置されている。リング照明装置13のさらに下方には、同軸照明(全射照明)を行う同軸照明装置14が配置されている。同軸照明(全射照明)は、透過照明とも呼ばれ、検査個体を透過してきた光を受光することで検査個体を観察する手法で利用される。リング照明装置12は、リング状に並べられた複数の発光素子12aと、複数の発光素子12aから出力される光を拡散する拡散板12bとを有している。同時に点灯する発光素子12aを選択することで、照明方向が自在に変更可能となっている。これは、それぞれ異なる方向から照明された検査個体(食品サンプル)を撮像して取得された複数の検査画像を合成する際に役立つであろう。リング照明装置13は、リング状に並べられた複数の発光素子13aと、反射板13bと、拡散板13cとを有している。反射板13bは、複数の発光素子13aから出力された光を拡散板13cに向けて反射する。拡散板13cは、反射板13bからの光を均一に拡散する。複数の発光素子13aのうち同時に点灯する発光素子13aを選択することで、照明方向が自在に変更される。同軸照明装置14は、同心円状またはアレイ状に並べられた複数の発光素子14aを有する。このように複数のタイプの照明装置を設け、食品サンプルと培地との組み合わせごとに適切な照明装置を選択することで、コロニーの個数を正確にカウントすることが可能となろう。
【0013】
図3はヘッド装置1aの電気的構成を示している。MCU20は、記憶装置25に記憶されている制御プログラム27を実行し、制御プログラム27にしたがってヘッド装置1aを制御するプロセッサである。なお、MCUはマイクロコントローラユニットの略称である。MCU20は撮像制御部21を介してメインカメラ11およびフロントカメラ10を制御し、様々な画像データを取得する。撮像制御部21は、たとえば、メインカメラ11の露光時間などを制御する。MCU20は、照明制御部22を介してリング照明装置12、13および同軸照明装置14を点灯させたり、消灯させたりする。照明制御部22は、リング照明装置12、13および同軸照明装置14に供給される駆動電力を制御する。MCU20は、操作受付部23を介して操作部8から入力されるユーザ入力を受け付ける。操作受付部23は、操作部8のスイッチ部の状態を示す信号を生成する入力回路などを含む。通信回路24は、通信ケーブル26を介して、図4に示されるPC1bと通信する回路である。通信回路24は、無線通信回路およびLANインタフェース回路を含んでもよい。LANはローカルエリアネットワークの略称である。通信ケーブル26は、たとえば、USBケーブルであってもよい。記憶装置25は、たとえば、制御プログラム27を記憶するリードオンリメモリ(ROM)と、ワークエリアとして利用されるランダムアクセスメモリ(RAM)とを含む。記憶装置25は、たとえば、PC1bにより設定された検査条件28と、メインカメラ11により取得された検査画像29などを記憶してもよい。検査条件28は、たとえば、照明条件や撮像条件、カウント条件などを含みうる。検査画像29は、培地およびサンプルを含むシャーレ15の画像である。
【0014】
図4は、ヘッド装置1aを制御するPC1bを示す。MCU30は、記憶装置35に記憶されたプログラムを実行し、プログラムにしたがってPC1bおよびヘッド装置1aを制御するプロセッサである。MCU30は、入出力回路31に接続されたキーボード32およびポインティングデバイス33からユーザの指示を受け付ける。MCU30は、入出力回路31に接続されたプリンタ38を制御し、表などを紙に印刷する。MCU30は、グラフィクスボードなどの表示制御部36を介して、表示装置37に様々な情報を表示する。通信回路34は、通信ケーブル26を介して、ヘッド装置1aと通信する回路である。通信回路34は、無線通信回路およびLANインタフェース回路を含んでもよい。記憶装置35は、たとえば、プログラムを記憶するリードオンリメモリ(ROM)と、ワークエリアとして利用されるランダムアクセスメモリ(RAM)とを含む。さらに、記憶装置35は、ハードディスクドライブ(HDD)およびソリッドステートドライブ(SSD)を含んでもよい。記憶装置35は、アプリケーションプログラム39、検査条件28、検査画像29、サンプルDB40およびカウント表55などを記憶してもよい。DBはデータベースの略称である。アプリケーションプログラム39は、たとえば、サンプルDB40およびカウント表55の作成・編集、ヘッド装置1の制御などを担当する。検査条件28は、アプリケーションプログラム39にしたがって、MCU30により設定される。検査画像29はヘッド装置1から受信される。サンプルDB40は、カウント表55を作成する際に参照されるデータベースである。カウント表55は、複数のセルがアレイ状に配置された表であり、行要素と列要素とを含む。
【0015】
PC1bは、通信回路34は、スマートフォンやタブレット端末などの端末装置1cと無線通信を実行してもよい。端末装置1cは、カウント表55を表示したり、カウント表55から作成された検査リストを表示したりしてもよい。検査リストは、シャーレ番号、サンプル名、菌種、培地、希釈倍率、培養時間などを含み、ユーザが検査個体をシャーレ15に準備する際に参照される。
【0016】
[検査手順]
一般的な検査手順は以下のとおりである。
(1)ユーザは、手書きで検査リストを作成する。検査リストは、複数の行を含み、各行は、シャーレ番号、菌種、希釈倍率、カウント数、コメント(サンプル品名など)を書き込み可能となっている。なお、ここでシャーレ番号とは、培地の種類や希釈倍率などの培養条件を特定するために予め所定のルールで割り当てられた識別情報である。
(2)ユーザは、検査リストにしたがってシャーレのふたに番号を書き込むか、または、シャーレに予め書き込まれた番号を検査リストに書き込む。
(3)ユーザは、検査リストに書き込まれている希釈倍率にしたがって培地を作成する。検査リストに希釈倍率が書き込まれていなければ、ユーザは、実際の希釈倍率を検査リストに書き込む。
(4)ユーザは、各シャーレの培地にサンプルを投入(混釈)する。ユーザは、検査リストのコメント欄にサンプル名を書き込む。
(5)ユーザは、培養器にシャーレを投入する。
(6)所定時間が経過すると、ユーザは、培養器からシャーレを取り出して、コロニーの個数をカウントする。たとえば、ユーザは、シャーレの底面側からコロニーを透かし見ながら、コロニーの位置に油性ペンでカウント済みのマークを付与して行く。コロニーの個数は検査リストに書き込まれる。なお、ユーザは、目視で菌種を確かめながら、菌種ごとのコロニーの個数をカウントしてもよい。この場合、ユーザは、各シャーレについて菌種ごとのコロニーの個数を検査リストに書き込む。
(7)ユーザは、PCを起動し、検査リストに書き込まれている数値および文字を読み取りながら、表計算ソフトウエアに、入力する。表計算ソフトウエアのマクロ機能などを使用して、コロニーの個数が集計される。
【0017】
このように、従来の検査手順では、手書きで検査リストが作成されており、これはユーザにとって非常に面倒な作業であった。また、検査リストに書き込まれた数値等を表計算ソフトウエアのシートに転記する際に誤入力があると、集計結果も誤ってしまう可能性があった。仮に、コロニーの個数をコロニーカウンタによって自動的に取得できたとしても、依然として、従来手法では、検査リストの作成と、コロニー個数の検査リストへの書き込みと、検査リストから表計算ソフトウエアのシートへの転記は、いずれも手書きであり、誤記入および誤入力の可能性があった。
【0018】
そこで、本実施例では、PC1bにより電子的な検査リストを作成し、電子的な検査リストにしたがってコロニーを計数し、当該計数結果を電子的な検査リストに直接入力し、入力された個数を集計することが提案される。これにより、コロニーの計数結果についての事後処理に関するユーザの負担が軽減されるだろう。また、ユーザによる手書き、または、手入力が減少するため、誤入力も減少し、検査精度も向上するであろう。
【0019】
[検査リスト(カウント表)の作成]
図5は、PC1bの表示装置37に表示されるカウントアプリケーションプログラムのUI50を示している。カウントアプリケーションプログラムは記憶装置35に記憶されており、MCU30により実行される。UI50は、カウントアプリケーションプログラムが有している複数の機能を切り替えるためのボタン、リンクまたはタブなどを有している。
【0020】
UI50は、表作成領域51と、DB表示領域61とを有している。DBはデータベースの略称である。表作成領域51は、少なくともカウント表55を表示する。タイトル表示部52は、カウント表55に付与されたタイトル(名称)の入力をキーボード32から受け付けて表示する。ボタン53は各セルのカウントの実施/非実施を切り替えるボタンである。ボタン54は、カウント表55に列を追加することを指示するボタンである。平均化設定部56は、カウント結果の平均化を実行するかどうかを指示するためのチェックボックスと、平均化の対象となるカウント値の数(=カウントの反復回数)の選択部と、を有する。
【0021】
DB表示領域61は、予め登録されたカウント項目のひな型の一覧(例:サンプルDB40)を表示する。ここで、カウント項目とは、カウント表55における一行に相当する。カウント項目は、通常、検査対象物の名称(サンプル名)により区別される。名称表示部62は、予め登録されているひな型の名称(サンプル名)を表示する。インジケータ63は、サンプル名に対して関連付けられている分類タグを視覚的に表示するオブジェクトである。分類タグとは、ユーザによって定義された分類(例:主食、総菜、デザート)を示すタグである。たとえば、インジケータ63は、色の違いによって分類タグの違いを表現してもよい。インジケータ63は、インジケータ63の形状の違いによって分類タグの違いを表現してもよい。ボタン67は、あるサンプル名に対して親子関係にある1つ以上のサブ項目を展開して表示するためのボタンである。親子関係とは、あるサンプルと、そのサンプルを構成する複数の具材との関係をいう。たとえば、サンドイッチを親とすると、サンドイッチを構成する具材(例:ハム、レタス、玉子)は子となる。ボタン64は、対応するひな型をカウント表55に追加することを指示するボタンである。このように予めサンプルDB40を用意しておくことで、ユーザは、カウント表55を容易に作成できるようになる。
【0022】
図5に示された事例では、ユーザがサンドイッチに関連付けられたボタン64を押すと、MCU30は、カウント表55に一行を追加し、追加された行のID表示セルにIDとして"1"を表示し、追加された行においてサンプル名を表示するセルに「サンドイッチ」を表示する。IDは識別情報の略称である。すなわち、IDやサンプル名は行単位で設定されるものであり、「行に対する設定」である。さらに、MCU30は、サンプルDB40に登録されているサンドイッチの検査条件を記憶装置35から読み出し、カウント表55に新規の列を追加し、新規の列に、読み出した検査条件を表示する。この例では、検査条件は、菌種(例:一般生菌/大腸菌)、培地の希釈倍率、サンプルの培養時間などを含んでいる。各列は、たとえば、菌種のセル、希釈倍率のセル、培養時間のセルおよびカウント値のセルを含む。すなわち、菌種や希釈倍率、培養時間は列単位で設定されるものであり、「列に対する設定」である。この例では、まだ、検査の実行前であり、カウント値が入手されていないため、カウント値のセルには何も入力されていない。サンドイッチについての一つ目の検査項目は、一般生菌について希釈倍率として100倍の培地を使用し、培養時間として48時間が適用されることである。サンドイッチについての二つ目の検査項目は、一般生菌について希釈倍率として1000倍の培地を使用し、培養時間として48時間が適用されることである。このように、MCU30は、検査項目の個数に応じて列を追加する。
【0023】
図6は、ユーザがキムチに関連付けられたボタン64を押すと、MCU30は、サンプルDB40に登録されているキムチの検査条件を記憶装置35から読み出し、読み出された検査条件に対応する行と列をカウント表55に追加する。
【0024】
この例で、キムチは、二つの検査項目を有している。キムチについての一つ目の検査項目は、一般生菌について希釈倍率として100倍の培地を使用し、培養時間として48時間が適用されることである。これは、サンドイッチについての一つ目の検査項目と共通している。そのため、MCU30は、キムチのひな型に含まれている一つ目の検査項目を破棄し、新規の列として追加しない。キムチについての二つ目の検査項目は、大腸菌について希釈倍率として100倍の培地を使用し、培養時間として24時間が適用されることである。MCU30は、これを新規の列としてカウント表55に追加する。
【0025】
なお、サンドイッチについては大腸菌に関する検査は実行されない。そのためカウント値のセルには「非検査」を示す文字または画像が表示されてもよい。同様に、キムチについては一般生菌について希釈倍率として1000倍の培地を使用する検査は実行されない。そのため、カウント値のセルには「非検査」を示す文字または画像が表示されてもよい。
【0026】
なお、カウントの実施・非実施はカウント反転ボタン53の操作により実行することもできる。サンドイッチについて、大腸菌に対応するセルを選択した状態で、カウント反転ボタン53が操作されると、MCU30は、「非検査」を示す文字または画像を表示するか、カウント結果を入力するために空欄とするのかを切り替えることができてもよい。
【0027】
図5および図6が示すように検索ボックス65やタグ検索絞り込みボタン66が追加されてもよい。サンプルDB40に登録されているひな型の個数が多くなると、DB表示領域61は、一度にすべてのひな型を表示することができなくなる。そこで、MCU30は、検索ボックス65に入力された文字に基づき記憶装置35から検索してひな型を抽出し、DB表示領域61に検索結果を表示してもよい。また、タグ検索絞り込みボタン66が押されると、MCU30は、指定した分類タグでフィルタされたサンプル品だけを表示してもよい。たとえば、複数のサンプル品に対して同じ分類タグが付与されていてもよい。この場合、選択された分類タグが付与されている複数のサンプル品をカウント表55へ追加する。
【0028】
図7は、新規の行を追加する別の手順を示している。ユーザは、新規の行におけるサンプル名表示セルをポインタ57で選択し、キーボード32を通じてサンプル名を先頭の文字から順番に入力して行く。MCU30は、入力された一以上の文字でサンプルDB40を検索し、入力候補となるサンプル名を候補表示部58に表示する。この例では、サンプル名表示セルに「ミックス」が入力されたため、MCU30は「ミックス」をサンプル名として含むひな型を検索し、「ミックスジュース」を発見し、候補表示部58に「ミックスジュース」を表示する。ここで、ユーザが、ポインタ57によって候補表示部58に表示された「ミックスジュース」を選択すると、MCU30は、ミックスジュースの検査条件を記憶装置35から読み出し、読み出された検査条件に応じて列を追加する。これにより、ミックスジュースのセルに検索条件が関連付けられることになる。
【0029】
図8は、新規にカウント表を作成する場合のUI50を示している。たとえば、MCU30は、アプリケーションプログラム39と並行して表計算ソフトウエアを起動することができる。
【0030】
図9は、表計算ソフトウエアのシート70を示している。MCU30は、表計算ソフトウエアにおいて選択されたシート70またはセル群について、UI50へのコピーペーストの指示を受け付ける。これにより、MCU30は、図6に示されたカウント表55を作成してもよい。
【0031】
図10は、すでにカウント値が入力されたカウント表82を呼び出して新規のカウント表55を作成する手順を説明する図である。MCU30は、検索ボックス65に入力されたファイル名に対応するファイルを記憶装置35から読み出し、そのファイルの属性を属性表示部80に表示してもよい。MCU30は、表作成領域51に、読み出されたカウント表82を表示する。図10が示すように、カウント値のセルにはカウント値が入力済みである。MCU30は、新規作成ボタン81が押されたことを検知すると、読み出されたカウント表82を構成しているカウント値のセルに入力されているカウント値をすべて削除し、新規のカウント表55を作成する。図11は、すでにカウント値が入力されたカウント表82から作成された新規のカウント表55を示している。カウント値を削除する代わりに、カウント値が0にリセットされてもよい。
【0032】
なお、MCU30は、複数のカウント表82をマージして一つのカウント表55を作成してもよい。この場合、MCU30は、複数のカウント表82を分析し、重複する行と列を削除し、新規のカウント表55を作成する。
【0033】
図12は、平均化を含むカウント表55の作成方法を説明するための図である。この例では、平均化がまだ適用されていないため、一つのサンプル名について一つの行が設けられている。この状態で平均化設定部56がチェックされ、反復回数として「2」が選択されると、MCU30は、図11に示されたUI50を表示する。図11が示すように、反復回数が「2」であることから、MCU30は、各サンプル名に関連付けられたカウント値の入力行を三つの行に分割するとともに、反復回数を示す列を追加する。この例では、三つの行のうち、一つ目の行は1回目の検査で取得されたカウント値が入力されるセルを有する。二つ目の行は2回目の検査で取得されたカウント値が入力されるセルを有する。三つ目の行は1回目の検査で取得されたカウント値と、2回目の検査で取得されたカウント値との平均値が入力されるセルを有する。このように、MCU30は、反復回数に応じて、カウント値が入力されるセルと平均値が入力されるセルとをカウント表55に追加してもよい。
【0034】
図13は、複数のサンプル間の親子関係の一例を示す。この例では、サンドイッチのインジケータ63が押されると、MCU30は、サンドイッチと親子関係を有する具材である「ハム」と「レタス」を選択可能にDB表示領域61に表示する。この状態で、「ハム」または「レタス」のボタン64が押されると、MCU30は、「ハム」または「レタス」の検査項目を記憶装置35から読み出し、カウント表55に追加する。図14は、「ハム」および「レタス」の各検査項目が記憶装置35から読み出されて、カウント表55に追加されたことを示す。親子関係を有するサンドイッチ、ハムおよびレタスが一括して登録されてもよい。たとえば、サンドイッチに関連付けられたボタン64が押されると、サンドイッチ、ハムおよびレタスがテーブル表55に一括して登録されてもよい。
【0035】
図15は、列を追加するためのダイアログ90を示している。UI50に設けられたボタン54が押されると、MCU30は、ダイアログ90を表示装置37に表示する。項目名設定部91は、列の項目名である菌種の名称の入力を受け付ける。列タイプ設定部92は、列のタイプがカウント列であるか、または、自由列であるかの設定を受け付ける。カウント列とは、カウント値が入力されるセルを含む列である。自由列とは、備考やコメントなど、ユーザが自由にテキスト、画像、その他の情報を入力可能な列である。希釈倍率設定部93は、希釈倍率の入力を受け付ける。培養時間設定部94は、培養時間の入力を受け付ける。アルゴリズム設定部95は、検査画像に適用される画像処理の設定を受け付ける。残渣除去とは、シャーレ15などに付着した残渣(例:ゴミ、汚れ、手書き)を画像処理によって低減するモードである。迅速モードとは、迅速な結果の確認を重視したモードであり、[0]従来よりも短い培養時間で培養されたシャーレ15を高感度で検査するモードである。培地タイプ設定部96は、培地の種類(例:一般生菌(白)、一般生菌(黒))などの選択を受け付ける。なお、一覧ボタン96aが押されると、MCU30は、記憶装置35から培地タイプの候補を読み出してリストを作成して表示装置37に表示してもよい。カウント設定部97は、メインカメラ11の撮影条件(例:露光時間)、照明の種類(例:明るさ、照明装置)、表示処理の種類、画像処理の種類などの設定を受け付ける。すなわち、ダイアログ90で受け付けられた菌種、希釈倍率、培養時間、アルゴリズム設定、培地タイプ、またはカウント設定は、デフォルトの設定として列ごとに設定される。
【0036】
[カウント処理]
図16は、PC1bからヘッド装置1aを制御してカウント処理を実行中にPC1bの表示装置37に表示されるUI100を示している。カウント表領域101は、UI50を通じて編集されたカウント表55を表示する領域である。結果領域102は、ヘッド装置1aのメインカメラ11により取得された検査画像103を表示する領域である。なお、検査画像103は、動画像であってもよいし、静止画像であってもよい。一般に、メインカメラ11の露光時間の調整、リング照明装置12、13および同軸照明装置14の明るさ、点灯すべき発光素子の選択、画像処理の選択などを実行する際は、MCU30は、メインカメラ11により動画像を取得して、結果領域102に表示する。一方で、カウント処理を実行する際には、MCU30は、メインカメラ11により静止画像を取得して、結果領域102に表示する。
【0037】
チェックボックス106は、カウント値領域104にカウント結果を表示するかどうかを選択するためのコントロールオブジェクトである。第一ソフトウエアボタン105aは、第一ハードウエアボタン8aと同一の機能を有するボタンである。第二ソフトウエアボタン105bは、第二ハードウエアボタン8bと同一の機能を有するボタンである。この例では、第一ソフトウエアボタン105aには撮影の指示(撮影ボタン)が割り当てられている。第二ソフトウエアボタン105bには登録の指示(登録ボタン)が割り当てられている。図15においては、第二ソフトウエアボタン105bが破線で示されているが、これは操作不可能であることを意味する。
【0038】
ユーザは、カウント表領域101に表示されたカウント表に含まれる複数のセルのうち、ステージ5にセットしたシャーレ15に対応するセルをポインタ57によりクリックして選択する。図16に示すように、どのセルがユーザにより選択されたかが分かるように、ポインタ57により選択されたセルは、強調して表示されてもよい。各セルには、予め検査条件(コロニーを二値化する際の感度、照明装置の種類、明るさなど)が関連付けられて記憶装置35に保存されている。MCU30は、選択されたセルに関連付けられている検査条件を記憶装置35から読み出して、ヘッド装置1aに送信する。ヘッド装置1aのMCU20は受信された検査条件にしたがってメインカメラ11、リング照明装置12、13、および同軸照明装置14を制御し、画像を取得して、PC1bへ送信する。なお、別のセルが選択されると、MCU30は、選択されたセルに関連付けられている検査条件を記憶装置35から読み出して、ヘッド装置1aに送信する。ヘッド装置1aのMCU20は受信された検査条件にしたがってメインカメラ11、リング照明装置12、13および同軸照明装置14を制御し、画像を取得して、PC1bへ送信する。このように、ユーザは、セルを選択することで、検査条件を変更することができる。
【0039】
図17は、設定タブまたは設定ボタンをポインタ57にクリックすることで表示される検査条件の確認画面110を示す。これにより、ユーザは、各セルごとの検査条件を確認することができる。なお、セルをポインタ57により右クリックすることで、確認画面110が表示されてもよい。確認画面110に表示される情報としては、たとえば、サンプル名、培地の種類、希釈倍率、培養時間、シャーレ番号、コメント、撮影設定(落射照明のオンオフ、照明装置の種類、落射照明の明るさ、透過照明の明るさ、画像処理(ハイダイナミックレンジ"HDR"のオンオフ、リング除去のオンオフなどのカウント設定)などである。図17において、「上リング」とはリング照明装置12の略称である。「下リング」とはリング照明装置13の略称である。「全射」とは同軸照明装置14の略称である。ここで、MCU30は、菌種、希釈倍率、培養時間、アルゴリズム設定、培地タイプ、または撮影設定(カウント設定)について、図15に示すダイアログ90上で、列単位で、デフォルト値を設定するが、図17の確認画面110上で、各セルに対して個別に設定してもよい。
【0040】
なお、セルに対してダブルクリックなどの特定の入力を受け付けることで、当該セルに対応する設定を一覧表示した確認画面110がUI100上に重畳して表示されてもよい。また、ポインタ57によりセルが選択されると、MCU30は、当該セルに対応する設定をUI100上に表示するようにしてもよい。
【0041】
図18は、撮影ボタンである第一ソフトウエアボタン105aまたは第一ハードウエアボタン8aが押されると、MCU30が表示装置37に表示するUI100を示している。結果領域102には、シャーレ15の画像103(静止画像)が表示される。MCU30は、第一ソフトウエアボタン105aを撮影ボタンからカウントを指示するボタン(カウントボタン)に割り当てる。
【0042】
図19は、カウントボタンである第一ソフトウエアボタン105aまたは第一ハードウエアボタン8aが押されると、MCU30が表示装置37に表示するUI100を示している。カウントボタンが押されると、MCU30は、ヘッド装置1aにコロニーのカウントを指示する。ヘッド装置1aのMCU20はカウント指示にしたがってコロニーをカウントし、カウント値をPC1bへ送信する。なお、カウント処理はMCU30により実行されてもよい。MCU30は、カウント値をカウント値領域104に表示する。この際には、MCU30は、カウント値をCFU/mL(単位体積(ミリリットル)あたりのコロニーの個数)に変換してカウント値領域104に表示してもよい。たとえば、カウント値領域104をポインタ57でクリックするごとに、MCU30は、カウント値のみ、CFU/mLのみ、カウント値+CFU/mLと順番に表示を切り替えてもよい。なお、CFUはコロニー形成単位の略称である。また、カウント値が取得されると、MCU30は、第一ソフトウエアボタン105aをカウントボタンから撮影ボタンに割り当て直す。さらに、MCU30は、登録ボタンに割り当てられている第二ソフトウエアボタン105bおよび第二ハードウエアボタン8bを操作不可能状態から操作可能状態に変更する。
【0043】
図20は、登録ボタンが押された状態を示している。MCU30は、現在選択中のセルに対してカウント値を書き込み、次のセルを選択中(注目セル)に変更してもよい。この例では、1行目のセルから2行目のセルに注目セル(アクティブセル)が変更されている。このように、MCU30が自動的に次のセルを選択することで、ユーザの負担が軽減される。なお、MCU30は、登録ボタンに割り当てられている第二ソフトウエアボタン105bおよび第二ハードウエアボタン8bを操作可能状態から操作不可能状態に戻す。
【0044】
図20に示されているUI100は、セルの表示対象の変更メニュー109を有している。図20では、変更メニュー109において「カウント数」が選択されているため、セルには、「100」が表示されている。
【0045】
図21が示すように、ユーザが変更メニュー109において「CFU/mL」を選択すると、MCU30は、セルの表示対象を「カウント数」から「CFU/mL」に変更する。これにより、ユーザは容易にセルの表示対象を切り替えることができる。
【0046】
図22が示すように、ユーザが変更メニュー109において「コメント」を選択すると、MCU30は、セルの表示対象を「コメント」に変更する。これにより、ユーザは容易にセルの表示対象をコメントに切り替えることができる。また、このUI100においても、ユーザは、図22に示すように「コンタミ発生」などのコメントを直接入力できる。ここで、コメントとは、カウント表の一行に含まれる備考などである。
【0047】
図23は、カウント値が入力済みであるセルをダブルクリックされると、MCU30が表示装置37に表示するUI100を示している。設定画面120は、ダブルクリックにより選択されたセルに関連付けられている検査条件のうちコロニーの検出アルゴリズムに関するパラメータを調整するためのコントロールオブジェクトを含む。スライドバー121は、たとえば、小粒子を画像処理により除去するための閾値を設定するためのコントロールオブジェクトである。スライドバー122は、コロニーの検出感度を調整するためのコントロールオブジェクトである。
【0048】
MCU30は、結果領域102に表示された画像103において、コロニーとして検出された部分にサークルなどのマークを重畳表示してもよい。スライドバー121、122の調整に応じて、MCU30がアルゴリズムを変更するため、コロニーを示すマークの位置と個数も変化する。これにより、ユーザは、適切な調整量を見出しやすくなるであろう。
【0049】
[ボタンの割り当て]
図24は、第一ハードウエアボタン8a(第一ソフトウエアボタン105a)と、第二ハードウエアボタン8b(第二ソフトウエアボタン105b)に割り当てられる機能の一例を示している。
【0050】
カウント表の状態が「カウント表が表示されている」状態であり、画像103が動画像であり、かつ、アクティブセルの状態がカウント値未入力であれば、第一ハードウエアボタン8a(第一ソフトウエアボタン105a)にはカウントボタンが割り当てられ、第二ハードウエアボタン8b(第二ソフトウエアボタン105b)には登録ボタン(操作不可能)が割り当てられる。
【0051】
カウント表の状態が「カウント表が表示されている」状態であり、画像103が動画像であり、かつ、アクティブセルの状態がカウント値入力済みであれば、第一ハードウエアボタン8a(第一ソフトウエアボタン105a)にはカウントボタンが割り当てられ、第二ハードウエアボタン8b(第二ソフトウエアボタン105b)には登録ボタン(操作不可能)が割り当てられる。
【0052】
カウント表の状態が「カウント表が表示されている」状態であり、画像103が静止画像であり、かつ、アクティブセルの状態がカウント値未入力であれば、第一ハードウエアボタン8a(第一ソフトウエアボタン105a)には撮影ボタンが割り当てられ、第二ハードウエアボタン8b(第二ソフトウエアボタン105b)には登録ボタン(操作可能)が割り当てられる。なお、撮影ボタンは、撮りなおしボタンと呼ばれてもよい。
【0053】
カウント表の状態が「カウント表が表示されている」状態であり、画像103が静止画像であり、かつ、アクティブセルの状態がカウント値入力済みであれば、第一ハードウエアボタン8a(第一ソフトウエアボタン105a)には撮影ボタンが割り当てられ、第二ハードウエアボタン8b(第二ソフトウエアボタン105b)には登録ボタン(操作不可能)が割り当てられる。
【0054】
カウント表の状態が「カウント表が表示されていない」状態であり、画像103が動画像であり、かつ、アクティブセルの状態がカウント値未入力であれば、第一ハードウエアボタン8a(第一ソフトウエアボタン105a)にはカウントボタンが割り当てられ、第二ハードウエアボタン8b(第二ソフトウエアボタン105b)には登録ボタン(操作不可能)が割り当てられる。
【0055】
カウント表の状態が「カウント表が表示されていない」状態であり、画像103が動画像であり、かつ、アクティブセルの状態がカウント値入力済みであれば、第一ハードウエアボタン8a(第一ソフトウエアボタン105a)にはカウントボタンが割り当てられ、第二ハードウエアボタン8b(第二ソフトウエアボタン105b)には登録ボタン(操作不可能)が割り当てられる。
【0056】
カウント表の状態が「カウント表が表示されていない」状態であり、画像103が静止画像であり、かつ、アクティブセルの状態がカウント値未入力であれば、第一ハードウエアボタン8a(第一ソフトウエアボタン105a)には撮影ボタンが割り当てられ、第二ハードウエアボタン8b(第二ソフトウエアボタン105b)には登録ボタン(操作可能)が割り当てられる。
【0057】
カウント表の状態が「カウント表が表示されていない」状態であり、画像103が静止画像であり、かつ、アクティブセルの状態がカウント値入力済みであれば、第一ハードウエアボタン8a(第一ソフトウエアボタン105a)には撮影ボタンが割り当てられ、第二ハードウエアボタン8b(第二ソフトウエアボタン105b)には再登録ボタン(操作可能)が割り当てられる。
【0058】
図17図23が示すように、カウント表の状態が「カウント表が表示されていない」状態では、カウント表に代えて、検査条件を変更可能なUIが表示されている。したがって、検査条件が変更されると、カウント値も変化するため、ユーザには、変化後のカウント値をアクティブセルに書き込む(再登録)するかどうかをMCU30が問い合わせることになる。
【0059】
「カウント表が表示されていない」状態は、カウント結果が入力されたカウント表が表示され、かつ、カウント結果を再編集可能な状態であってもよい。図25は、再編集のための編集タブ124が設けられたUI100を示している。図24に表示された「カウント表が表示されていない」状態は、カウント結果が入力されたカウント表が表示され、かつ、編集タブ124がクリックされた状態であってもよい。図25において検査条件タブ123は、図17に示された検査条件の確認画面110を表示するためのタブである。上述されたように、確認画面110において照明やメインカメラ11の設定が変更可能となっている。
【0060】
このように結果領域102に動画像が表示されているときにカウントボタンが押されると、動画像が静止画像に変更され、カウント結果が表示され、登録ボタンが操作可能となる。静止画像が表示されているときに登録ボタンが押されると、カウント結果がアクティブセルに書き込まれ、結果領域102は動画像を表示する状態に戻る。一度登録されたカウント結果が変更され、再登録ボタンが押されると、変更されたカウント結果がカウント表に上書きされ、結果領域102は動画像を表示する状態に戻る。結果領域102が静止画像を表示しているときに、撮影ボタン(撮りなおしボタン)が押されると、結果領域102は動画像を表示する状態に戻る。
【0061】
[カウント表の特定方法]
ユーザは、シャーレ15で菌を培養したり、コロニーをカウントしたりする際にカウント表を見ることになる。ここで、カウント表を作成された日と、カウント表を目視して準備作業およびカウント作業を実行する日と、が異なっている場合がある。この場合、ユーザは、所望のカウント表を記憶装置35から読み出して表示装置37に表示させる必要がある。
【0062】
図26は、カウント表などのファイルを呼び出すファイルUI200を示している。ボタン210は、呼び出す対象としてカウント表を指定するためのボタンである。ファイルリスト211は、記憶装置35に記憶されたファイルを一覧212として表示する領域である。ボタン210が押されると、MCU30は、複数のファイルのうちカウント表に特有の拡張子を有するファイルのみをファイルリスト211に表示する。一覧212は、ID(通し番号)、タイトル、最終更新日、カウントが済んでいるかどうか、その他の情報を含む。
【0063】
検索ボックス213は、一覧212に含まれる複数のファイルからさらに所望のファイルを検索するためのキーワードを入力されるボックスである。ボタン214は、カウント表を紙に印刷することで作成された検査リストに付与されている識別画像を読み取るためにフロントカメラ10を起動することを指示するためのボタンである。開くボタン215は、一覧212から選択されたカウント表を開くことを指示するボタンである。
【0064】
図27は、検査リスト220を示している。MCU30は検査リスト220をプリンタ38から出力してもよいし、端末装置1cの表示装置に出力してもよい。検査リスト220は、対応するカウント表55から作成されたリストである。カウント表55における情報の並ぶ順序と検査リスト220における情報の並ぶ順序とは異なっていてもよいし、一致していてもよい。検査リスト220は、表示装置37に表示されるカウント表55と同じであってもよい。また、検査リスト220にはカウント結果を記入する必要が無いため、カウント結果を記入するためのセルが省略されていてもよい。さらに、ユーザが検査リスト220を培養サンプルの準備に用いる場合、培養時間は必ずしも必要ではない。そのため、培養時間のセルが省略されていてもよい。検査リスト220は、各カウント表を識別するための識別情報として一次元シンボルや二次元シンボルなどの識別画像221を付与されていてもよい。識別画像221は、ユーザの識別情報を含んでいてもよい。
【0065】
図26に示されたボタン214が押されると、MCU30は、ヘッド装置1aにフロントカメラ10の起動を指示する。ヘッド装置1aのMCU20は、フロントカメラ10を起動し、識別画像221の読み取りを試行する。識別画像221は単にシンボルと呼ばれてもよい。この際にユーザは、フロントカメラ10に識別画像221を読み取らせるよう、検査リスト220の位置をフロントカメラ10に対して合わせる。MCU20は、識別画像221の読取に成功すると、識別画像221から識別情報を復号(デコード)して、PC1bへ送信する。MCU30は、ヘッド装置1aから受信された識別情報に関連付けられているカウント表を記憶装置35から読み出す。
【0066】
図28は、ユーザが身に着けるユーザ認証札230を示している。データインテグリティ規制のために、ヘッド装置1aを使用するユーザに種々の制限が課されることがある。たとえば、米国のFDA(食品医薬品局)の規則である21 CFR Part11によれば、ユーザは、物理的および論理的に管理されることが求められている。たとえば、ヘッド装置1aおよびPC1bについてもユーザごとに使用可能な機能を制限するために、ユーザ認証札230が利用されてもよい。ユーザは、フロントカメラ10によりユーザ認証札230の識別画像221を読み取らせることで、MCU20またはMCU30がユーザ認証を実行してもよい。つまり、識別画像221は、ユーザ名とパスワードなどのアカウント情報を示すシンボルを含んでいてもよい。ただし、ユーザ名とパスワードは暗号化された上で、識別画像221となっている。
【0067】
ユーザごとの機能制限としては、次のようなものが考えられる。一例として、ユーザは、管理者、リーダー、および作業者に分かれている。管理者は、ユーザを追加したり、各ユーザの権限を設定したりすることができる。リーダーは、カウント表を作成でき、カウントを実行でき、カウント結果を保存でき、カウント結果を編集でき、カウント結果を出力(印刷、送信)できる。作業者は、カウントを実行でき、カウント結果を保存できる。MCU20およびMCU30は、識別画像221から特定されたユーザの権限に応じて、そのユーザが実行できる機能を制限してもよい。
【0068】
ここで、フロントカメラ10により識別画像221が読み取られているが、メインカメラ11により識別画像221が読み取られてもよい。
【0069】
図41が示すように、フロントカメラ10およびメインカメラ11は、シャーレ15に貼付されたシール270に印刷されているシャーレ番号や識別画像221を撮像して読み取ってもよい。識別画像221には、カウント表55の識別情報、サンプル名、カウント結果が格納されるセルを示す固有の識別情報などが符号化されていてもよい。つまり、識別画像221を読み取ることで、MCU30は、カウント表55、サンプル名、シャーレ15、検査条件を特定することができる。さらに、MCU30は、特定された検査条件をヘッド装置1aに送信し、ヘッド装置1aのMCU20は受信された検査条件にしたがってメインカメラ11、リング照明装置12、13、および同軸照明装置14を制御し、画像を取得できる。
【0070】
[フロントカメラの他の応用例]
(1)セルへのテキスト入力
図29はボタン54を押すことで備考として利用される新規の列が追加されたカウント表55を示している。新規の列は、自由列として定義されており、文字や数字だけでなく、画像などを保持することができる。
【0071】
図30は、自由列のセルをポインタ57で右クリックされると表示される編集画面240を示している。この例では、セルに対するテキスト「商品番号:」が入力済みであり、それに続くテキストを入力するためのダイアログ241が表示されている。ダイアログ241は、編集画面240のテキストボックス内をポインタ57で右クリックすることで表示される。ダイアログ241は、フロントカメラ10を利用することで商品等からコードを読み取り、読取結果をセルに入力するための複数の選択肢を含む。この例では、選択肢として、フロントカメラ10によるコードの読み取りが含まれる。たとえば、「コード読み取り(一次元シンボル)」がポインタ57により選択され、読み取りボタン242が押されると、MCU30は、ヘッド装置1aに対して一次元シンボルの読み取りを指示する。
【0072】
図31は、読み取りボタン242が押されると、表示装置37に表示される読取画面250を示している。チェックボックス251は、MCU20がコードの認識に成功したときにMCU30が読取画面250を自動的に閉じることを指示するためのチェックボックスである。画像領域252は、フロントカメラ10により取得された動画像または静止画像を表示する。読取結果領域253は、一次元シンボルや二次元シンボルから復号されたテキストを表示する領域である。
【0073】
ヘッド装置1aのMCU20はフロントカメラ10を起動し、一次元コードを読み取らせ、一次元コードからテキストを復号し、復号されたテキストをPC1bへ送信する。ユーザは読取結果領域253に表示されたテキストを確認し、OKボタン254またはキャンセルボタン255を押す。OKボタン254が押されると、MCU30は、読取画面250を閉じて編集画面240に戻り、ヘッド装置1aから受信されたテキストをセルに挿入する。キャンセルボタン255が押されると、ヘッド装置1aから受信されたテキストを破棄し、読取画面250を閉じて、編集画面240に戻る。
【0074】
図32は、テキストを挿入された編集画面240を示す。ここで、OKボタン254が押されると、MCU30は、編集画面240を閉じ、図29に示されたUI50を表示装置37に表示する。
【0075】
(2)セルへの画像入力
図33は、カウント表の一部、またはカウント表から作成されたカウントレポート260の一例を示している。カウント表55に含まれる自由列のセルには画像データを関連付けることができる。MCU30は、ヘッド装置1aのメインカメラ11を制御してシャーレ15の画像(シャーレ画像)を取得し、取得したシャーレ画像をセルに関連付ける。あるいは、MCU30は、ヘッド装置1aのフロントカメラ10を制御してシャーレ15の画像(シャーレ画像)を取得し、取得したシャーレ画像をセルに関連付けてもよい。同様に、MCU30は、ヘッド装置1aのフロントカメラ10を制御して商品の外観画像を取得し、取得した外観画像をセルに関連付けてもよい。さらに、MCU30は、ヘッド装置1aのフロントカメラ10を制御して商品に付与されているバーコードを読み取って復号させ、復号された商品番号等をセルに入力してもよい。MCU30は、プリンタ38を制御し、カウントレポート260を紙に印刷してもよい。
【0076】
ここでは、フロントカメラ10により様々な画像が取得されているが、メインカメラ11により様々な画像が取得されて、セルに関連付けられてもよい。
【0077】
[フローチャート]
(1)PC1bの主な処理
図34は、PC1bのMCU30により実行される一連の処理を示すフローチャートである。MCU30は、記憶装置35に記憶されたカウントアプリケーションプログラムにしたがって以下の処理を実行する。
【0078】
S1でMCU30はカウント表の編集を実行する。図5から図15などを用いて説明されたように、UI50などを通じてカウント表が編集または作成される。
【0079】
S2でMCU30はカウント表を記憶装置35に保存する。
【0080】
S3でMCU30はカウント表を特定する。カウント表の特定は、フロントカメラ10と検査リスト220またはユーザ認証札230を用いて実行されたり、図26に示されたファイルUI200を使用して実行されたりしてもよい。
【0081】
S4でMCU30は特定されたカウント表を記憶装置35から読み出す。これにより、図16に示されたUI100が表示装置37に表示される。
【0082】
S5でMCU30はカウント値を書き込まれるセルを特定する。最初は、カウント表において最も上に位置する行のセルが選択されてもよいし、ポインタ57によりクリックされたセルが選択されてもよい。
【0083】
S6でMCU30はアクティブセルに関連付けられている検査条件を特定する。たとえば、MCU30は、カウント表の作成の際に各セルに対し関連付けられた検査条件を記憶装置35から読み出す。
【0084】
S7でMCU30は、アクティブセルに関連付けられている検査条件をヘッド装置1aに設定する。上述されたように、メインカメラ11の感度、点灯すべき照明装置、明るさ、点灯すべき発光素子の数(照射方向)、画像処理(HDR、リング除去)、カウントアルゴリズム(閾値などのパラメータ)などをヘッド装置1aに送信する。
【0085】
S8でMCU30は検査条件が変更されたかどうかを判定する。上述されたように、セルに関連付けられた検査条件は検査中においても随時変更可能である。よって、検査条件が変更されると、MCU30は、S7に戻り、変更後の検査条件をヘッド装置1aに送信する。検査条件が変更されていなければ、MCU30は、S9に進む。
【0086】
S9でMCU30は、ユーザにより撮影指示が入力されたかどうかを判定する。ユーザは、ヘッド装置1aの第一ハードウエアボタン8aまたはUI100の第一ソフトウエアボタン105aを押すことで撮影を指示することができる。撮影指示が入力されていなければ、MCU30はS9からS8に戻る。撮影指示が入力されると、MCU30は、S9からS10に進む。
【0087】
S10でMCU30は、ヘッド装置1aに対して撮像指示を送信する。
【0088】
S11でMCU30は、ヘッド装置1aからメインカメラ11により取得されたシャーレ画像103の画像(検査画像)を取得し、UI100の結果領域102に検査画像を表示する。
【0089】
S12でMCU30は、カウント指示が入力されたかどうかを判定する。ユーザは、カウントボタンとして割当たられたヘッド装置1aの第一ハードウエアボタン8aまたはUI100の第一ソフトウエアボタン105aを押すことで、カウント指示を入力できる。カウント指示が入力されていなければ、MCU30は、S12からS8に戻る。カウント指示が入力されると、MCU30は、S12からS13に進む。
【0090】
S13でMCU30は、カウント指示をヘッド装置1aへ送信する。なお、カウント処理がPC1bにより実行される場合、MCU30がMCU20の代わりにカウント処理を実行する。
【0091】
S14でMCU30は、ヘッド装置1aからカウント結果を受信し、カウント結果をカウント値領域104に表示する。なお、S14でMCU30がカウント処理を実行する場合、MCU30はカウント処理を実行することで得られたカウント結果をカウント値領域104に表示する。
【0092】
S15で、MCU30は、画像処理、カウントアルゴリズム等の検査条件が変更されたかどうかを判定する。検査条件が変更されると、S13に戻る。検査条件が変更されていなければ、MCU30はS16に進む。なお、S8の検査条件の変更は画像の再取得が必要になるような検査条件の変更が想定されている。S15の検査条件の変更は取得された画像に対する画像処理の変更をもたらすが、画像の再取得は不要なものが想定されている。
【0093】
S16でMCU30は、ユーザにより登録指示が入力されたかどうかを判定する。ユーザは、登録ボタンとして割当たられたヘッド装置1aの第二ハードウエアボタン8bまたはUI100の第二ソフトウエアボタン105bを押すことで、登録指示を入力できる。登録指示が入力されていなければ、MCU30は、S16からS8に戻り、撮りなおしを実行したり、検査条件を変更したりする。登録指示が入力されると、MCU30は、S16からS17に進む。
【0094】
S17でMCU30は、カウント結果をアクティブセルに登録する。
【0095】
S18でMCU30は、カウントがすべて終了したかどうかを判定する。たとえば、カウント表に存在するすべてのセルにカウント結果が入力されていれば、MCU30は、カウント終了と判定する。まだ、未入力のセルが存在している場合、MCU30は、S18からS5に進み、アクティブセルを次のセルに変更する(セルの特定)。
【0096】
(2)ヘッド装置1aの主な処理
図35は、ヘッド装置1aのMCU20が制御プログラムにしたがって実行する一連の処理を示す。
【0097】
S21でMCU20は、フロントカメラ10に対する撮影の指示を受信したかどうかを判定する。上述されたように検査リスト220の識別画像221を読み取る場合、フロントカメラ10に対する撮影の指示(コードを読み取り指示)がPC1bからヘッド装置1aへ入力される。フロントカメラ10に対する撮影の指示が入力されていなければ、MCU20は、S21からS23に進む。フロントカメラ10に対する撮影の指示が入力されると、MCU20は、S21からS22に進む。
【0098】
S22でMCU20は、フロントカメラ10を起動して画像(フロントカメラ画像)を取得し、フロントカメラ画像またはシンボルのデコード結果をPC1bへ送信する。
【0099】
S23でMCU20は、PC1bから検査条件を受信し、記憶装置25に保存する。
【0100】
S24でMCU20は、検査条件を各部に設定する。検査条件のうち感度は撮像制御部21に設定される。点灯すべき照明装置、明るさ、照明方向などは照明制御部22に設定される。
【0101】
S25でMCU20は、PC1bから検査条件の変更指示が受信されたかどうかを判定する。変更指示は、新しい検査条件とともに受信される。検査条件の変更指示が受信されると、MCU20は、S24に戻り、新しい検査条件を設定する。変更指示が受信されていなければ、MCU20は、S25からS26に進む。
【0102】
S26でMCU20は、PC1bから撮像指示が受信されたかどうかを判定する。撮像指示が入力されていなければ、MCU20は、S26からS25に戻る。撮像指示が入力されると、MCU20は、S26からS27に進む。
【0103】
S27でMCU20は、メインカメラ11を起動して検査画像を取得し、検査画像をPC1bへ送信する。
【0104】
S28でMCU20は、ヘッド装置1aからカウント指示が入力されたかどうかを判定する。カウント指示が入力されていなければ、MCU20は、S28からS25に戻る。カウント指示が入力されると、MCU20は、S28からS29に進む。
【0105】
S29でMCU20は、検査条件にしたがってコロニーのカウントを実行する。
【0106】
S30でMCU20は、カウント結果をPC1bへ送信する。
【0107】
S31でMCU20は、カウント終了指示を受信したかどうかを判定する。カウント終了指示が受信されると、MCU20は、カウントを終了する。カウント終了指示が受信されていなければ、MCU20は、S31からS23に戻り、次のセルについての検査条件を受信する。
【0108】
(3)サンプルデータベースの登録
カウント表は複数の行および列を有し、さらに各セルには検査条件が関連付けられている。カウント表や検査リストは、日ごとに作り替えられることがある。ただし、同一のサンプルについて毎日検査が実行されることもある。したがって、検査頻度の多いサンプルについては、サンプルDB40に予め登録しておくことで、カウント表の作成処理の負担が軽減される。そこで、サンプル表を作成したときに、ユーザは、各サンプルに対応する行要素をサンプルDB40に登録してもよい。
【0109】
図36は、PC1bのMCU30により実行されるサンプルDB40の編集処理を示すフローチャートである。MCU30は、記憶装置35に記憶されたアプリケーションプログラム39にしたがって以下の処理を実行する。
【0110】
S41でMCU30は、カウント表に含まれる複数の行要素のうちサンプルDB40に登録したい行要素の選択を受け付ける。たとえば、MCU30は、サンプル表に含まれる行要素のうちいずれかの行要素に対するポインタ57によるクリックを受け付けてもよい。
【0111】
S42でMCU30は、選択された行要素の追加指示を受け付ける。たとえば、行要素が選択された状態でポインタ57により右クリックが実行されると、追加指示が入力されてもよい。
【0112】
S43でMCU30は、追加指示された行要素のサンプル名を取得し、同一のサンプル名がすでにサンプルDB40に登録済みであるかどうかを判定する(重複判定)。追加指示された行要素が既に存在しなければ、MCU30は、S43からS45に進む。追加指示された行要素がサンプルDB40に存在すれば、MCU30は、S43からS44に進む。
【0113】
S44でMCU30は、サンプルDB40に行要素を上書きするかどうかをユーザに問い合わせる。キャンセル指示が入力されると、MCU30は、行要素の追加をキャンセルする。上書き指示が入力されると、MCU30は、S44からS45に進む。
【0114】
S45でMCU30は、追加対象の行要素を構成している項目名(例:サンプル名、菌種、培地タイプ、希釈倍率)を取得する。
【0115】
S46でMCU30は、行要素のセルに関連付けられている検査条件を記憶装置35から取得する。
【0116】
S47でMCU30は、項目名と検査条件をサンプルDB40に登録する。
【0117】
S48でMCU30は、UI50におけるサンプルDB40の表示を更新する。
【0118】
(4)カウント表の編集
図37は、PC1bのMCU30により実行されるカウント表の編集処理を示すフローチャートである。MCU30は、記憶装置35に記憶されたカウントアプリケーションプログラムにしたがって以下の処理を実行する。
【0119】
S51でMCU30は、カウント表において新しく行要素を追加される位置(セルまたは行)を特定する。たとえば、MCU30は、カウント表においてサンプル名が入力済みである最終行の次の行を選択する。なお、ある行と別の行との間に新たな行が選択されてもよい。たとえば、カウント表においてサンプル名が入力済みである行が選択され、ポインタ57による右クリックが実行されると、選択された行の次に空行が追加される。
【0120】
S52でMCU30は、サンプルDB40から行の追加が指示されたかどうかを判定する。たとえば、UI50のボタン64が押されると、MCU30は、サンプルDB40から行の追加が指示されたと認識する。サンプルDB40から行の追加が指示されると、MCU30は、S53に進む。サンプルDB40から行の追加が指示されていなければ、MCU30は、S61に進む。
【0121】
S53でMCU30は、追加指示された行の項目名をサンプルDB40から取得する。
【0122】
S54でMCU30は、追加指示された行の検査条件をサンプルDB40から取得する。
【0123】
S55でMCU30は、取得された項目名と検査条件とをカウント表に貼り付ける。つまり、MCU30は新規の行要素をカウント表に追加する。なお、MCU30は、サンプルDB40に保持されている複数の行要素のうちユーザにより指定された行要素が新規のカウント表に含まれているか否かを判定してもよい。さらに、ユーザにより指定された行要素が新規のカウント表に含まれていないと判定された場合、MCU30は、ユーザにより指定された行要素が新規のカウント表に含まれていない列要素のセルを含むか否かを判定してもよい。ユーザにより指定された行要素が新規のカウント表に含まれていない列要素のセルを含むと判定された場合、MCU30は、当該列要素を新規のカウント表に追加する。つまり、すでにカウント表に存在する他のサンプル名を付与された行要素にも列要素が追加されることになる。
【0124】
S56でMCU30は、編集完了かどうかを判定する。ユーザにより編集完了が指示されると、MCU30は、カウント表を記憶装置35に保存する。ユーザにより編集完了が指示されなければ、MCU30は、S56からS51に戻る。
【0125】
サンプルDB40を利用せずに新規に行が追加される場合、S61でMCU30は、キーボード32やポインティングデバイス33を通じた項目名の入力を受け付ける。
【0126】
S62でMCU30は、キーボード32やポインティングデバイス33を通じた検査条件の入力を受け付ける。
【0127】
S63でMCU30は、取得された項目名と検査条件とをカウント表に書き込む。その後、MCU30は、S56に進む。
【0128】
(5)カウント表の特定
図38は、PC1bのMCU30により実行されるカウント表の特定処理を示すフローチャートである。MCU30は、記憶装置35に記憶されたカウントアプリケーションプログラムにしたがって以下の処理を実行する。
【0129】
S71でMCU30は、フロントカメラ10の起動指示が入力されたどうかを判定する。たとえば、図26に示されたファイルUI200のボタン214がクリックされると、MCU30は、起動指示が入力されたと判定し、S72に進む。
【0130】
S72でMCU30は、フロントカメラ10の起動指示をヘッド装置1aへ送信する。
【0131】
S73でMCU30は、ヘッド装置1aにおいて識別画像221の読取が成功するのを待つ。
【0132】
S74でMCU30は、ヘッド装置1aにおいて識別画像221からデコードされた識別情報を取得する。
【0133】
S75でMCU30は、記憶装置35において、識別情報に対応するカウント表を検索する。
【0134】
S76でMCU30は、識別情報に対応するカウント表が発見されたかどうかを判定する。カウント表が存在しない場合、MCU30は、S71に戻る。カウント表が存在した場合、MCU30は、S77に進む。
【0135】
S77でMCU30は、カウント表を記憶装置35から読み出し、UI100にセットする。
【0136】
S71で起動指示が入力されていなければ、MCU30は、S78に進む。S78でMCU30は、カウント表の検索画面を表示装置37に表示する。S79でMCU30は、カウント表の選択を受け付ける。たとえば、図26に示されたファイルUI200においていずれかカウント表が選択されてもよい。その後、MCU30は、S77に進む。
【0137】
(6)コロニーのカウント
図39は、ヘッド装置1aのMCU20が制御プログラムにしがって実行するコロニーのカウント処理を示す。ただし、画像処理やカウント処理は、MCU30により実行されてもよい。
【0138】
S81でMCU20は、PC1bから受信された検査条件からカウントアルゴリズムを取得する。具体的には、カウントアルゴリズムにおいて使用される画像処理や閾値パラメータ(例:二値化閾値)が取得される。
【0139】
S82でMCU20は、メインカメラ11により取得された検査画像にカウントアルゴリズムを適用する。たとえば、HDRやリング除去などの画像処理が検査画像に適用される。
【0140】
S83でMCU20は、検査条件(閾値パラメータ)にしたがって検査画像に含まれるコロニーをカウントする。
【0141】
(7)自由列(例:備考セル)への情報の登録
図40は、PC1bのMCU30により実行される備考セル等の自由列への情報登録処理を示すフローチャートである。MCU30は、記憶装置35に記憶されたカウントアプリケーションプログラムにしたがって以下の処理を実行する。
【0142】
S91でMCU30は、備考セルの選択を受け付ける。ここでは一例として備考セルが挙げられているが、他の自由列のセルであってもよい。MCU30は、ポインタ57により選択された備考セルをアクティブセルに設定する。
【0143】
S92でMCU30は、備考セルの属性を特定する。各セルには、属性(例:カウント値、文字列、画像)が予め付与されていてもよい。MCU30は、各セルの属性を記憶装置35から読み出する。
【0144】
S93でMCU30は、フロントカメラの起動が指示されたかどうかを判定する。フロントカメラ10の起動が指示されなければ、MCU30は、キーボード32等から入力されたテキストを備考セルに入力する。一方、起動指示が入力されると、MCU30は、S94に進む。
【0145】
S94でMCU30は、ヘッド装置1aのフロントカメラ10を起動する。
【0146】
S95でMCU30は、フロントカメラ10により画像を取得する。
【0147】
S96でMCU30は、特定された属性が画像かどうかを判定する。属性が画像である場合、MCU30は、S97に進む。
【0148】
S97でMCU30は、フロントカメラ10により取得された画像(例:商品の外観画像)を備考セルに関連付ける。
【0149】
S96で、特定された属性が画像でないと判定されると、MCU30は、S98に進む。
【0150】
S98でMCU30は、フロントカメラ10により取得された画像のデコード結果をヘッド装置1aから取得する。
【0151】
S99でMCU30は、取得された情報(デコード結果(例:商品のシリアル番号など))を備考セルに書き込む。
【0152】
<残渣の除去>
図42は、菌類を培養する前にメインカメラ11により取得された事前画像を示している。図42が示すように、シャーレ15は、内皿15aと外皿15bとを有している。内皿15aの外径は、外皿15bの内径よりも小さく、外皿15bは内皿15aを覆う蓋として機能する。目印15cは、位置合わせのための目印であり、ユーザが内皿15aの底または底の裏面にペンにより記入する目印である。目印15cは、刻印などであってもよい。残渣15dは、ほこりや塵、汚れ、ペンにより描かれて消し忘れた文字などの異物である。残渣15dは、検査対象である食品の一部であってもよい。
【0153】
図43は、菌類を培養した後にメインカメラ11により取得された事後画像を示している。コロニー15eの輝度と残渣15dの輝度とが近い場合、二値化処理された事後画像において、コロニー15eと残渣15dとは区別不可能である。そのため、残渣15dは、コロニーとしてカウントされてしまうことがある。そこで、本実施例は、事前画像(基準画像)と、事後画像(検査画像)とを取得し、事前画像に基づいて検査画像における残渣15dの影響を低減することで、コロニーの個数の計数精度を向上させる。
【0154】
図44は、別の事後画像を示している。菌類を培養するには、24時間や48時間などかなりの時間を要する。本実施例では、シャーレ15は、事前画像を取得された後に、ステージ5から降ろされて、保温庫等に保管される。培養終了時刻が過ぎると、ユーザは、保温庫からシャーレ15を取り出して、ステージ5に載置し、メインカメラ11により事後画像を取得する。このとき、事前画像を取得したときのシャーレ15の位置および回転角度と、事後画像を取得したときのシャーレ15の位置および回転角度と、は必ずしも一致しない。たとえば、目印15を用いてステージ5にシャーレ15を位置合わせしたとしても、事前画像におけるシャーレ15の位置および回転角度と、事後画像におけるシャーレ15の位置および回転角度と、を完全に合わせることは困難である。このような相対的なズレが発生すると、事前画像を用いて、事後画像における残渣15dの影響を十分に低減することも困難となる。そこで、本実施例は、このような相対的なズレの影響も低減する。
【0155】
上述されたように、メインカメラ11の撮像条件や照明装置の照明条件などを含む検査条件は、コロニーの計数に影響を与える。仮に、事前画像を取得するときの検査条件と、事後画像を取得するときの検査条件とが異なれば、残渣15dの影響を十分に低減することも困難となりうる。したがって、事前画像を取得するときの検査条件と、事後画像を取得するときの検査条件とを一致させるための手段があれば、有利であろう。
【0156】
ところで、食品検査では、非常に多くのシャーレ15が利用されるため、どの事前画像がどの事後画像に対応するかを把握することが重要である。図41が示すように、シャーレ15の側面に識別情報(例:シャーレ番号)を付与すれば、少なくとも複数のシャーレ15をユーザは区別できる。しかし、メインカメラ11により取得される事前画像および事後画像には、シャーレ15の側面に付与されたシャーレ番号が含まれない。シャーレ15の蓋または底にシャーレ番号をペンで記入すると、事前画像および事後画像にシャーレ番号が含まれることになるが、これは残渣15dとなって、計数精度を低下させる。したがって、シャーレ15、事前画像および事後画像の関係を正しく保持することが重要となる。たとえば、事前画像からシャーレ番号を確認できたり、事後画像からシャーレ番号を確認できたりすれば、ユーザにとって便利であろう。
【0157】
[ユーザインタフェース]
以下では事前画像を基準画像と呼び、事後画像を検査画像と呼ぶことにする。
【0158】
図45は、残渣低減処理に対応したUI50を示している。UI50は、残渣低減処理のオン/オフ(有効/無効)を設定する設定部として機能するチェックボックス59を有している。チェックボックス59は、ポインタ57によってクリックされるたびに、オンまたはオフとなる。カウントセル290はカウント結果が入力されるセルである。
【0159】
図46は、残渣低減処理がオフからオンに切り替えられたときのUI50を示している。MCU30は、チェックボックス59がオンになったことを検知すると、カウント表55においてカウントセル290を第一セル291と第二セル292とに分割する。なお、チェックボックス59がオンからオフに切り替えられると、図46に示されているUI50は、図45に示されているUI50に戻り、第一セル291と第二セル292は一つのカウントセル290に戻る(統合される)。
【0160】
第一セル291を含む列要素には培養時間として"0h"が示されている。"0h"は培養前であることを示唆する表記にすぎない。第一セル291は、基準画像の取得が済んでいるかどうかを示すチェックボックス293またはアイコンが含まれていてもよい。
【0161】
第二セル292を含む列要素には培養時間として"48h"が示されている。これは、元のカウントセル290に関連付けられている培養時間と共通である。
【0162】
図47は基準画像を取得するためのUI300を示している。すでに説明された部分には同一の参照符号が付与されている。UI300は、第一セル291をポインタ57によりダブルクリックすることで表示装置37に表示されてもよいし、カウント表55とは異なるユーザインタフェースから呼び出されてもよい。MCU30は、UI300を通じて第一セル291に設定された検査条件を記憶装置35に保存する。さらに、MCU30は、ヘッド装置1に起動指示を送信し、メインカメラ11により取得された動画像を結果領域102に表示する。ユーザは、表示装置37に表示された動画像を見ながら、菌類の培養前のシャーレ15を位置合わせ部材7に対して位置合わせする。MCU30は、画像処理によってシャーレ15の中心を画像(基準画像)の中心に対して位置合わせしてもよい。この場合であっても、シャーレ15を位置合わせ部材7に対して、できる限り正確に、手動で位置合わせしておくことで、画像処理による位置合わせ精度が向上する。
【0163】
位置合わせ部材7は、シャーレ15と対応する形状を有する。これにより、ユーザは位置合わせ部材7に沿わせてシャーレ15を配置することで位置合わせができる。なお、検査個体の培養容器としてウェルプレートやフィルム型の培地を用いる場合がある。それぞれの培養容器の形状に対応した位置合わせ部材7を用意しておくことで、ウェルプレートやフィルム型の培地を用いた場合であっても容易に位置合わせを行うことができる。
【0164】
UI300で設定された検査条件は、たとえば、培地の種類、サンプル名、希釈倍率、培養時間、シャーレ番号、コメント、撮影設定(露光時間などのカメラ設定と、照明装置の選択、明るさ、画像処理)などを含む。
【0165】
MCU30は、撮影ボタンに割り当てられた第一ソフトウエアボタン105a(第一ハードウエアボタン8a)が操作されたことを検知すると、ヘッド装置1に撮影設定を送信し、メインカメラ11にシャーレ15を撮像させ、基準画像(静止画)を取得する。ユーザは、結果領域102に表示された基準画像を確認し、登録ボタン105bを押すか、再撮影のために撮影ボタン105bを押す。後者の場合、ユーザは、UI300を操作して検査条件(主に撮影設定)を変更することができる。
【0166】
MCU30は、登録ボタン105bが押されたことを検知すると、基準画像を記憶装置35に保存する。ここで、MCU30は、基準画像のヘッダに含まれる、基準画像であることを示すフラグ(基準フラグ)を"1"に設定してもよい。また、MCU30は、基準画像に対してシャーレ番号などの識別情報を関連付けたり、第一セル291を関連付けたりして記憶装置35に保存してもよい。
【0167】
図48は、第二セル292がポインタ57によりダブルクリックされたときに表示装置37に表示されるUI100を示す。ここでは、ステージ5に対してシャーレ15がまだ載置されていない。MCU30は、第二セル292が指定されると、第二セル292に関連付けられている第一セル291にさらに紐づけられている検査条件を記憶装置35から読み出し、検査条件をヘッド装置1に設定する。図48においては、すでに基準画像が取得ずみであるため、チェックボックス293にはチェックマークが表示されている。
【0168】
図49は、ステージ5にシャーレ15が載置されたことを示している。ここで、位置合わせ部材7が省略されている。ユーザは、結果領域102に表示された動画像を見ながら、シャーレ15の位置を調整する。ここで、シャーレ15の位置の調整を容易にするためにガイド画像(例:基準画像)が動画像に対して重畳して表示されてもよい。MCU30は、第二セル292に関連付けられている第一セル291に紐づけられている基準画像を記憶装置35から読み出してもよい。あるいは、MCU30は、次のようなUIを使用してユーザに基準画像を選択させてもよい。
【0169】
図50は、基準画像または残渣の低減対象となる検査画像を指定するためのUI310を示している。チェックボックス311は、呼出対象が基準画像であることを示す。チェックボックス312は、呼出対象が検査画像であることを示す。MCU30は、チェックボックス311がチェックされると、記憶装置35に保存されている複数の画像のうち基準フラグが"1"にセットされている画像を基準画像として抽出し、リストを作成する。
【0170】
メニュー313がポインタ57によりクリックされると、MCU30は、メニュー313にリストを表示する。この例では、各基準画像にシャーレ番号が付与されている。ユーザがポインタ57により一つの基準画像をメニュー313から選択すると、MCU30は、選択された基準画像に関連付けられている検査条件を記憶装置35から読み出す。
【0171】
図51は、一つの基準画像が指定されたときのUI310を示している。MCU30は、ユーザにより選択された基準画像に関連付けられている検査条件を条件表示部315に表示する。これにより、ユーザは、自分の意図通りの基準画像を選択できたかどうかを確認することができるだろう。
【0172】
チェックボックス312がチェックされると、MCU30は、記憶装置35に保存されている複数の画像のうち基準フラグが"1"にセットされている画像を基準画像として抽出し、リストを作成する。
【0173】
メニュー313がポインタ57によりクリックされると、MCU30は、メニュー313にリストを表示する。検査画像にはシャーレ番号が付与されていてもよい。ユーザがポインタ57により一つの基準画像をメニュー313から選択すると、MCU30は、選択された基準画像に関連付けられている検査条件を記憶装置35から読み出し、UI310に表示する。
【0174】
図52は、シャーレ15の内皿15aに付与された少なくとも二つの目印15c、15fを示している。目印15c、15fは、手動によるシャーレ15の位置合わせに利用されるが、後述される残渣低減処理においても利用される。
【0175】
図53は、検査画像を撮影してコロニーをカウントするためのUI100において、動画像である検査画像103aに対して基準画像103bを重畳して表示することを示している。基準画像103bは、位置合わせのガイド画像として機能する。MCU30は、たとえば、基準画像103bの輝度を低減したり、基準画像103bからシャーレ15の輪郭を抽出し、輪郭を目立つ色(例:赤、オレンジ、緑、青、紫)で着色したりして、検査画像103aに重畳してもよい。ユーザは、基準画像103bの位置と回転角度に対して検査画像103aの位置と回転角度とが一致するように、手動でシャーレ15の位置を調整する。その際に、ユーザは、目印15c、15fを参考にすることで、精度よく位置合わせを実行できるようになろう。
【0176】
図54は、シャーレ15の位置合わせが終了した状態である。基準画像103bの位置と回転角度に対して検査画像103aの位置と回転角度とはできる限り一致することが望ましいが、これらは完全に一致している必要はない。ただし、位置合わせが正確であれば、より正確に残渣が低減されて、コロニーのカウント精度も向上する。
【0177】
MCU30は、カウントボタンに割り当てられた第一ソフトウエアボタン105a(第一ハードウエアボタン8a)が押されたことを検知すると、検査条件をヘッド装置1に設定するとともに、撮像指示を送信する。これにより、検査画像が取得され、検査画像が記憶装置35に保存される。MCU30は、さらに、基準画像103bと検査画像103a(静止画)とを用いて検査画像103aに含まれる残渣を低減し、コロニーをカウントする。
【0178】
図55は、カウント結果が取得されたことを示すUI100を示す。上述されたように第一ソフトウエアボタン105a(第一ハードウエアボタン8a)には、撮りなおしのための撮影ボタンが割り当てられ、第二ソフトウエアボタン105b(第二ハードウエアボタン8b)には登録ボタンが割り当てられる。MCU30は、登録ボタンが押されたことを検知すると、カウント結果をカウント表55の第二セル292に入力する。
【0179】
図56は、カウント結果が第二セル292に入力されたことを示す。ユーザが、ポインタ57により次のセルを選択すると、MCU30は、次のセルについて上記の手順を繰り返す。
【0180】
[位置合わせの目印]
図52では、内皿15aに付与された少なくとも二つの目印15c、15fが示されている。目印15c、15fは、ペンにより描かれたり、刻印されたりしてもよいが、他のタイプの目印が採用されてもよい。
【0181】
図57は、他のタイプの目印15gを示している。目印15gは、残渣そのものである。シャーレ15の内皿15aまたは外皿15bには様々な残渣が存在しうる。とりわけ、内皿15aまたは外皿15bに固着した残渣は目印15gとして適しているだろう。培地に存在する残渣も目印15gとして利用可能であるが、この場合、コロニーの形成によって目印15gが移動してしまう可能性があることを許容しなければならない。
【0182】
MCU30は、基準画像103bを二値化し、最も大きな塊を目印15cとして選択してもよいし、基準画像103bからユーザによりポインタ57により指定された残渣を目印15cとして選択してもよい。
【0183】
[残渣低減アルゴリズム]
(1)第一のアルゴリズム
図58は、残渣低減アルゴリズムの一例を示している。MCU30は、同一の識別情報(例:シャーレ番号)に関連付けられている基準画像103bと検査画像103aとを共通の特徴箇所である目印15c、15f、15gに基づき、画像処理による位置合わせを実行する。たとえば、基準画像103bにおける目印15c、15f、15gと、検査画像103aにおける目印15c、15f、15gとに基づき、基準画像103bと検査画像103bとの間の位置と回転角度のズレ量を求める。基準画像103bと検査画像103aとのうちの一方をズレ量で補正することで、基準画像103bの位置と回転角度と検査画像103aの位置と回転角度とが一致する。
【0184】
その後、MCU30は、二値化された検査画像103aから二値化された基準画像103bを減算することで、カウント用の検査画像103cを作成し、カウント用の検査画像103cに含まれるコロニー15eの個数をカウントする。ここで、二値化された検査画像103aから二値化された基準画像103bを減算することにより、基準画像103bに含まれる残渣の影響を低減して検査画像103aに含まれるコロニー15eの個数をカウントできる。すなわち、検査画像103aに、培養により増加したコロニー15eと、培養開始時点で存在していた残渣とが存在する場合であったとしても、培養により増加したコロニー15eの個数を選択的にカウントできる。
【0185】
(2)第二のアルゴリズム
図59は、残渣低減アルゴリズムの他の一例を示している。この例でも、ズレ量の算出までの手順は、図58に関連して説明されて手順が使用される。
【0186】
MCU30は、二値化された基準画像103bから残渣15dの座標を特定し、残渣15dの座標をズレ量で補正する。これにより、検査画像103aにおける残渣15dの位置が特定される。MCU30は、検査画像103aにおいて特定された残渣15dに対してマスク15hを設定する。MCU30は、マスク15hを設定された画素をコロニーのカウントから除外する。基準画像103bから特定された残渣15dの位置に対してマスク15hを設定することにより、基準画像103bに含まれる残渣の影響を低減して検査画像103aに含まれるコロニー15eの個数をカウントできる。
【0187】
図59においてマスク15hは矩形で示されているが、二値化された基準画像103bから特定された残渣15dの輪郭がマスク15hの形状として採用されてもよい。または、マスク15hは、残渣15dの輪郭よりも大きくてもよい。この場合、残渣15dの輪郭とマスク15hの形状とは相似となる。
【0188】
(3)第三のアルゴリズム
第三のアルゴリズムは最もシンプルである。MCU30は、二値化された基準画像103bからコロニーをカウントして、コロニーの個数mを求める。MCU30は、二値化された検査画像103aからコロニーをカウントして、コロニーの個数nを求める。MCU30は、個数nから個数mを減算し、最終的なコロニーの個数n-mを求める。
【0189】
第三のアルゴリズムは、画像処理による位置合わせすら不要となろう。短時間でカウントすることが要求される場合は、第三のアルゴリズムが適しているだろう。
【0190】
[フローチャート]
(1)カウント表を利用しないケース
図60は、カウント表55を用いずに基準画像103bを取得する方法を示すフローチャートである。
【0191】
S101でMCU30は、基準フラグを設定する。ここでは、基準フラグを"1"に設定する。基準フラグが"0"であることは、その画像が基準画像でないことを示す。
【0192】
S102でMCU30は、キーボード32またはフロントカメラ10を通じてユーザにより入力されるシャーレ番号を受け付ける。上述されたようにシャーレ番号は識別画像221からデコードされてもよい。
【0193】
S103でMCU30は、ヘッド装置1に撮像コマンドを送信し、ヘッド装置1に培養前のシャーレ15を撮影させ、基準画像103bを取得する。
【0194】
S104でMCU30は、ヘッド装置1から受信した基準画像103bを記憶装置35に記憶する。ここで、MCU30は、基準画像103bのヘッダに基準フラグとシャーレ番号を保存してもよい。MCU30は、基準画像103bを取得する際に使用された検査条件を基準画像103bに関連付けて記憶装置35に記憶してもよい。
【0195】
図61は、カウント表55を用いずに検査画像103aを取得してコロニーをカウントする方法を示すフローチャートである。
【0196】
S111でMCU30は、検査フラグを設定する。ここでは、検査フラグに"1"がセットされる。検査フラグが"0"であることは、その画像が検査画像でないことを示す。
【0197】
S112でMCU30は、キーボード32またはフロントカメラ10を通じてユーザにより入力されるシャーレ番号を受け付ける。上述されたようにシャーレ番号は識別画像221からデコードされてもよい。
【0198】
S113でMCU30は、シャーレ番号に基づき基準画像103bと検査条件を記憶装置35から読み出す。上述されたように、シャーレ番号、基準画像103bおよび対応する検査条件は、相互に関連付けて記憶装置35に記憶されている。
【0199】
S114でMCU30は、検査条件をヘッド装置1に設定する。
【0200】
S115でMCU30は、メインカメラ11により取得される動画に対して基準画像103bを重畳して表示する。これによりユーザにとっては、手動によるシャーレ15の位置合わせが容易となろう。
【0201】
S116でMCU30は、ヘッド装置1に撮像コマンドを送信し、メインカメラ11に培養後のシャーレ15を撮影させ、静止画である検査画像103aを取得する。なお、MCU30は、検査画像103aとして、S113で読み出された検査条件に基づいて位置合わせ用の検査画像を取得し、ユーザによる検査条件の調整を受け付けた後にカウント用の検査画像を取得してもよい。
【0202】
S117でMCU30は、基準画像103bと検査画像103aとに基づきコロニーをカウントする。検査画像103aとして、位置合わせ用の検査画像と、カウント用の検査画像を取得する場合、MCU30は、基準画像103bと位置合わせ用の検査画像とに基づいて、シャーレ15の位置合わせを行い、基準画像103bとカウント用の検査画像とに基づいて、コロニーをカウントする。カウント処理は、MCU20により実行されてもよいし、MCU30により実行されてもよい。
【0203】
(2)カウント表を利用するケース
図62は、カウント表55を用いて基準画像103bを取得する方法を示すフローチャートである。
【0204】
S121でMCU30は、ユーザにより指定されたカウント表55を表示装置37に表示する。カウント表55は、たとえば、キーボード32、ポインティングデバイス33、フロントカメラ10またはメインカメラ11を通じて指定される。
【0205】
S122でMCU30は、基準セルである第一セル291の指定を受け付ける。第一セル291は、たとえば、ポインティングデバイス33により操作されるポインタ57により指定される。
【0206】
S123でMCU30は、基準セルである第一セル291に関連付けられている検査条件を記憶装置35から読み出してヘッド装置1に設定する。
【0207】
S124でMCU30は、ヘッド装置1に撮像コマンドを送信し、ヘッド装置1に培養前のシャーレ15を撮影させ、基準画像103bを取得する。
【0208】
S125でMCU30は、ヘッド装置1から受信した基準画像103bを、基準セルである第一セル291に関連付けて記憶装置35に記憶する。カウント表55において、第一セル291は、検査個体の識別情報(例:サンプル名)に関連付けられている。つまり、基準画像103bも検査個体の識別情報(例:サンプル名)に関連付けられる。
【0209】
図63は、カウント表55を用いて検査画像103aを取得してコロニーをカウントする方法を示すフローチャートである。
【0210】
S131でMCU30は、ユーザにより指定されたカウント表55を表示装置37に表示する。カウント表55は、たとえば、キーボード32、ポインティングデバイス33、フロントカメラ10またはメインカメラ11を通じて指定される。
【0211】
S132でMCU30は、カウント表55における対象セル(第二セル292)の指定を受け付ける。対象セルである第二セル292は、たとえば、ポインティングデバイス33により操作されるポインタ57により指定される。
【0212】
S133でMCU30は、対象セルである第二セル292に関連付けられている基準セル(第一セル291)の検査条件を記憶装置35から読み出す。
【0213】
その後、MCU30は、S114からS117を実行する。
【0214】
S138でMCU30は、対象セルである第二セル292にカウント結果を入力する。
【0215】
(3)カウント処理(S117の詳細)
図64は、第一のカウントアルゴリズムにしたがったカウント方法を示すフローチャートである。カウント処理はMCU30またはMCU20のどちらで実行されてもよいが、ここでは、説明の便宜上、MCU30において実行されるものとして、説明される。
【0216】
S141でMCU30は、基準画像103bと検査画像103aとから共通の特徴箇所を特定する。上述されたように、MCU30は、複数の目印15c、15f、15gの中から少なくとも2つの目印を基準画像103bと検査画像103aとからそれぞれ抽出する。
【0217】
S142でMCU30は、共通の特徴箇所に基づき位置のズレ量と回転角度のズレ量を求める。つまり、基準画像103bと検査画像103aとの間のズレ量が求められる。
【0218】
S143でMCU30は、基準画像103bにおける残渣を特定し、特定された残渣の座標を求める。
【0219】
S144でMCU30は、ずれ量に基づき残渣の座標を補正する。これにより、基準画像103bにおいて特定された残渣の位置と大きさが、検査画像103aにおける残渣の位置と大きさとに変換されることになる。
【0220】
S145でMCU30は、検査画像103aから残渣を除去する。残渣は、複数の画素から形成されている。したがって、検査画像103aにおいて、残渣を構成している複数の画素の輝度値がコロニーとしてカウントされない値に変更される。検査画像103aが二値化されている場合、コロニーを示す画素は1であり、コロニーではない画素は0である。よって、検査画像103aにおいて、残渣を構成している複数の画素の輝度値が0に置換される。
【0221】
S146でMCU30は、残渣を低減された検査画像103aにおいてコロニーをカウントする。
【0222】
図65は、第二のカウントアルゴリズムにしたがったカウント方法を示すフローチャートである。カウント処理はMCU30またはMCU20のどちらで実行されてもよいが、ここでは、説明の便宜上、MCU30において実行されるものとして、説明される。なお、図65では、図64のS145、S146がS155、S156に置換されるため、S155とS156が中心に説明される。
【0223】
S155でMCU30は、検査画像103aにおいて残渣をマスクする。たとえば、MCU30は、検査画像103aにおいて、残渣を構成している複数の画素をマスクする。あるいは、MCU30は、検査画像103aにおいて、残渣を構成している複数の画素を囲むようにマスクを設定する。
【0224】
S156でMCU30は、検査画像103aにおいてマスクされた画素を除外して、コロニーをカウントする。
【0225】
図66は、第三のカウントアルゴリズムにしたがったカウント方法を示すフローチャートである。カウント処理はMCU30またはMCU20のどちらで実行されてもよいが、ここでは、説明の便宜上、MCU30において実行されるものとして、説明される。
【0226】
S161でMCU30は、基準画像103bを二値化し、二値化された基準画像103bについてコロニーの個数mをカウントする。
【0227】
S162でMCU30は、検査画像103aを二値化し、二値化された検査画像103aについてコロニーの個数nをカウントする。
【0228】
S163でMCU30は、個数nから個数mを減算し、カウント結果(個数n-m)を求める。
【0229】
<まとめ>
[観点A1]
記憶装置35は、複数の検査個体の各々のカウント結果が入力されるセルを含むカウント表を記憶する記憶部の一例である。MCU30および表示制御部36は、記憶部に記憶されているカウント表を表示装置37に表示する表示制御部の一例である。MCU30およびポインティングデバイス33などは、表示制御部により表示されるカウント表に含まれる複数のセルの中から、カウント結果が入力される対象セルを特定するセル特定部の一例である。MCU20またはMCU30は、ユーザの操作にしたがった計数指示を生成する計数指示部の一例である。MCU30およびメインカメラ11は、計数指示部で生成された計数指示に基づいて検査個体の画像である検査画像を取得する取得部の一例である。MCU20またはMCU30は、取得部で取得された検査画像に基づき検査個体に含まれるコロニーを計数する計数部の一例である。図19図20などが例示するように、MCU20またはMCU30は、計数部により計数されたコロニーの数を対象セルに反映する表管理部として機能する。これにより、コロニーの計数結果についての事後処理に関するユーザの負担が軽減される。
【0230】
[観点A2]
表管理部(例:MCU30)は、ユーザ操作に応じて検査個体の識別情報を格納する識別情報セルと、識別情報セルと関連付けられ、検査個体についてのコロニーの数のカウント結果を格納するカウント結果セルと、を含むカウント表を作成し、記憶部に当該カウント表を記憶させてもよい。つまり、図5図16などが示すように、カウント表55、82は、検査個体の識別情報(例:サンプル名)を格納する識別情報セルと、識別情報セルと関連付けられ、検査個体についてのコロニーの数のカウント結果を格納するカウント結果セルと、を含んでもよい。これにより、ユーザは、カウント表を手書きで作成する手間を省くことができるであろう。
【0231】
[観点A3]
表管理部(例:MCU30)は、コロニーの数のカウント結果を格納するカウント結果セルに対して検査条件を関連付けてもよい。これにより、カウント結果が格納されるセルに対して検査条件を関連付けておくことで、コロニーに関する検査を事項する際に検査条件を容易に設定することが可能となる。
【0232】
[観点A4]
取得部は、検査個体を照明する照明部(例:リング照明装置12、13、同軸照明装置14)と、照明部により照明された検査個体を撮像する撮像部(例:メインカメラ11)と、を有してもよい。検査条件は、照明部の照明条件(例:照明の種類、明るさ)を含んでもよい。大腸菌、一般生菌などの菌の種別や培地の種別(例:シート型の培地、液体型の培地、選択型の培地)に応じて適切な照明条件は異なる。よって、検査条件として照明条件を含めることで、各セルに適した照明条件が設定可能となる。さらに、検査条件は、撮像部の撮像条件(例:露光時間)を含んでもよい。培地の色やコロニーの色によって適切な撮像条件は異なりうる。検査条件が撮像条件を含むことで、各セルごとに適切な撮像条件が設定可能となろう。
【0233】
[観点A5]
照明部は、検査個体を落射照明する第一照明モード(例:リング照明装置12を点灯するモード)と、撮像部に対して対向する方向から検査個体を透過照明する第二照明モード(例:同軸照明装置14を点灯するモード)とのいずれかにしたがって動作してもよい。検査条件は、第一照明モードまたは第二照明モードの選択を含む。検査条件が照明モードの指定を含むことで、各セルごとに適切な照明モードを選択することが可能となろう。
【0234】
[観点A6]
検査条件は、計数部に適用される計数条件を含んでもよい。ここで、計数条件は、コロニーを検出するための閾値、および、コロニーを検出する際の基準となる色の少なくとも一方を含みうる。たとえば、計数条件は、コロニーとそれ以外とを区別するための閾値(例:検出感度を左右する二値化閾値)、および、コロニーを計数する際の基準となる色(例:前景色、背景色)を含んでもよい。MCU20またはMCU30は、検査画像を二値化してコロニーの個数をカウントしてもよい。よって、二値化閾値はコロニーの検出感度を左右する。二値化閾値を適切に設定することで、コロニーの誤検出が減少する。また、コロニーの色と培地の色とを適切に設定することが出来れば、コロニーの誤検出が減少する。各セルごとに計数条件を設定することで、各セルごとにコロニーの誤検出が減少するであろう。また、計数条件に応じて計数アルゴリズムを適切に調整することが可能となろう。
【0235】
[観点A7]
計数部(例:MCU20、MCU30)は、ユーザにより計数指示が入力されると、対象セルに関連付けられている検査条件にしたがった照明コマンドを照明部に出力してもよい。照明部は、照明コマンドにしたがって検査個体を照明する。撮像部は、照明コマンドにしたがって照明部により照明された検査個体を撮像して検査画像を生成する。計数部は、照明コマンドが反映された検査画像に基づきコロニーの数を計数する。これにより、各セルごとに設定された検査条件が反映された検査画像についてコロニー数を計数することが可能となる。
【0236】
[観点A8]
計数部(例:MCU20、MCU30)は、特定部により対象セルが第一セルから第二セルに変更されると、取得部に適用される検査条件を、第一セルに関連付けられている第一検査条件から、第二セルに関連付けられている第二検査条件に変更する。このように、対象セルが変更されるとそれに連動して検査条件を変更することが可能となる。各セルごとに、つまり、検査個体ごとに適切な検査条件はことなることがある。予めセルごとに適切な検査条件が設定されていれば、ユーザはセルを選択するだけで適切な検査条件を選択することが可能となろう。
【0237】
[観点A9]
サンプルDB40は、カウント表55,82の作成を補助するためのデータベースである。MCU30は、データベースにデータを登録する登録部として機能してもよい。カウント表55、82は、識別情報セルとカウント結果セルとをそれぞれ含む複数の行要素を有してもよい。登録部(MCU30)は、カウント結果がカウント結果セルに入力されたカウント表82に含まれる行要素をデータベースに登録するように構成されてもよい。ここで、行要素は、セルと当該セルに関連付けられた検査条件とを含む。表管理部(MCU30)は、データベースに保持されている複数の行要素のうちユーザにより指定された行要素に基づき新規のカウント表を作成してもよい。たとえば、ユーザにより指定された行要素を構成するセルと当該セルに関連付けられている検査条件とが新規のカウント表へコピーされる。また、セルに格納されていたカウント結果は、サンプルDB40に登録される際に削除されてもよい。このように、予めカウント表の行要素として採用可能な行要素をデータベース化しておくことで、ユーザは、新規のカウント表を容易に作成することができる。
【0238】
[観点A10]
カウント表55、82は、複数の列要素を有してもよい。複数の列要素は、それぞれ組み合わせに関連付けられていてもよい。ここで、組み合わせとは、検査個体の培養条件(例:希釈倍率、培養時間)と菌種(例:一般生菌、大腸菌)との組み合わせである。各列要素は、培養条件と菌種との組み合わせが異なっている。たとえば、第一列要素と第二列要素とでは、培養条件と菌種とのうち少なくとも一方が異なっている。これにより、ある検査個体について、様々な培養条件と様々な菌種とから構成される複数の組み合わせそれぞれ対応するセルを一行にまとめることも可能となろう。
【0239】
[観点A11]
表管理部(例:MCU30)は、データベースに保持されている複数の行要素のうちユーザにより指定された行要素(指定行要素)が、新規のカウント表に含まれているか否かを判定してもよい。指定行要素がカウント表に含まれていないと判定された場合、MCU30は、指定行要素が、カウント表に含まれていない新規の列要素のセルを含むか否かを判定してもよい。指定行要素が新規の列要素のセルを含むと判定された場合、MCU30は、当該新規の列要素を新規のカウント表に追加する。一方、指定行要素がカウント表にすでに含まれているか、または、指定行要素が新規の列要素のセルを含まない場合、当該列要素はカウント表に追加されない。これにより、テーブル表における行要素の重複と列要素の重複が抑制され、テーブル表のコンパクト化が実現されよう。
【0240】
[観点A12、13]
データベースは、親子関係を定義された複数の行要素を含んでもよい。親子関係は、完成品を親とし、当該完成品を構成する具材を子とする関係であってもよい。商品全体(完成品)の培養結果におけるコロニーのカウントと、商品を構成する個別の具材の培養結果におけるコロニーのカウントとが必要なケースがある。よって、親子関係をあらかじめ定義しておくことで、カウント表を作成する際のユーザ工数が削減される。たとえば、ある完成品(例:サンドイッチ)が選択されたときに、その具材(例:ハム、レタス)が選択可能に提示されてもよい。
【0241】
[観点A14]
表管理部(例:MCU30)は、親子関係を定義された複数の行要素を一括して新規のカウント表に追加してもよい。これにより、カウント表を作成する際のユーザの負担がさらに軽減されるであろう。
【0242】
[観点A15]
表管理部(例:MCU30)は、統計処理の適用が指示されると、同一の検査個体をそれぞれ培養するn個の培養器の各カウント結果を格納するn個の行要素と、当該n個の行要素の統計処理結果を格納する少なくとも1個の行要素と、を含むようにカウント表を作成してもよい。図11によれば、n=2の事例が説明されている。nは3以上であってもよい。これにより、平均化等の統計処理を実行するカウント表の作成が容易になろう。
【0243】
[観点A16]
図16などが例示するように、表示制御部(例:MCU30)は、表示装置37に、検査画像とカウント表とを並べて(同時並行的に)表示させてもよい。セル特定部(例:MCU30)は、表示装置37に検査画像とともに表示されるカウント表に含まれる複数のセルの中から、ユーザの選択にしたがって対象セルを特定してもよい。表示制御部(例:MCU30)は、計数部により計数されたコロニーの数が対象セルに反映されたカウント表を、検査画像とともに表示装置に表示させてもよい。これにより、カウント結果を格納されるセルが容易に選択可能となろう。
【0244】
[観点A17]
図25が例示するように、表示制御部(例:MCU30)は、対象セルに関連付けられる検査条件に含まれる照明条件を設定するための第一コントロールオブジェクト(例:タブ123)と、当該検査条件に含まれる計数条件を設定するための第二コントロールオブジェクト(例:タブ124)と、を表示装置37に表示してもよい。これにより、セルに関連付けられている検査条件を容易に変更することが可能となろう。さらに、表示制御部(例:MCU30)は、第一コントロールオブジェクト(例:タブ123)に対するユーザ操作を検知すると、照明条件を設定するための設定画面(例:確認画面110)を表示装置に表示してもよい。表示制御部(例:MCU30)は、第二コントロールオブジェクト(例:タブ124)に対するユーザ操作を検知すると、計数条件を設定するための設定画面(例:設定画面120)を表示装置に表示してもよい。
【0245】
[観点A18]
表示制御部(例:MCU30)は、計数部に計数を指示するための第三コントロールオブジェクト(例:第一ソフトウエアボタン105a)と、カウント結果を対象セルに登録することを指示するための第四コントロールオブジェクト(例:第二ソフトウエアボタン105b)と、を表示装置37に表示してもよい。これによりユーザは容易にカウントの指示とカウント結果の登録とを指示することが可能となろう。
【0246】
[観点A19]
表示制御部(例:MCU30)は、第三コントロールオブジェクトに対するユーザ操作を検知すると、当該第三コントロールオブジェクトを、計数を指示するためのコントロールオブジェクト(例:カウントボタン)から、取得部に検査画像の取得を指示するためのコントロールオブジェクト(例:撮影ボタン、撮りなおしボタン)に割り当ててもよい。つまり、MCU30は、第三コントロールオブジェクトを操作することで発行されるコマンドを、計数を指示するためのコマンドから、検査画像の取得を指示するためのコマンドに変更してもよい。これにより、操作可能なボタンの数が削減され、ユーザは、今、何を操作すべきかを容易に判断できるであろう。
【0247】
[観点A20]
図18が例示するように、表示制御部(例:MCU30)は、第三コントロールオブジェクトが計数を指示するためのコントロールオブジェクト(例:カウントボタン)に割り当てられているときは、ユーザ操作を受け付けないように第四コントロールオブジェクト(例:登録ボタン)を表示してもよい。図19が例示すように、計数を指示するためのコントロールオブジェクトに割り当てられている第三コントロールオブジェクトが操作されると、計数結果が取得される。表示制御部(例:MCU30)は、計数結果が取得されると、第三コントロールオブジェクトが取得部に検査画像の取得を指示するためのコントロールオブジェクト(例:撮影ボタン)に割り当てられ、かつ、ユーザ操作を受け付けるように第四コントロールオブジェクト(例:登録ボタン)を変更してもよい。つまり、第三コントロールオブジェクトに対して計数を指示するためのコマンドが割り当てられているときは、ユーザ操作を受け付けないように第四コントロールオブジェクトが表示されてもよい。さらに、計数を指示するためのコマンドが割り当てられている第三コントロールオブジェクトが操作されて、カウント結果が取得されると、第三コントロールオブジェクトに対して、取得部に検査画像の取得を指示するためのコマンドが割り当てられ、かつ、ユーザ操作を受け付けるように、第四コントロールオブジェクトの表示が変更されてもよい。これにより、ユーザは、今、何を操作すべきかを容易に判断できるであろう。
【0248】
[観点A21]
図19図20などが例示するように、表示制御部(例:MCU30)は、第四コントロールオブジェクト(例:登録ボタン)が操作されると、カウント結果を対象セルに登録し、ユーザ操作を受け付けないように第四コントロールオブジェクトを再び変更してもよい。ここで、セル特定部は、対象セルを次のセルに変更する。図20および図18が例示するように、表示制御部(例:MCU30)は、取得部に検査画像の取得を指示するためのコマンドが割り当てられた第三コントロールオブジェクト(例:撮影ボタン)が操作されると、取得部に検査画像を取得させ、計数を指示するためのコマンドが第三コントロールオブジェクト(例:カウントボタン)に割り当てられてもよい。これにより、ユーザは、今、何を操作すべきかを容易に判断できるであろう。
【0249】
[観点A22]
ヘッド装置1は、たとえば、コロニー計数装置の筐体に設けられた第一ハードウエアボタンおよび第二ハードウエアボタンをさらに有してもよい。第一ハードウエアボタンと第三コントロールオブジェクトには同一の機能が割り当てられ、第二ハードウエアボタンと第四コントロールオブジェクトには同一の機能が割り当てられてもよい。これにより、ハードウエアボタンとソフトウエアボタンとを連携させることが可能となろう。ユーザが、ヘッド装置1にセットされたシャーレ15に注視している場合、ヘッド装置1のハードウエアボタンにより指示を入力することが可能となる。つまり、ユーザは、PC1bの表示装置37に視線を移し、かつ、ポインティングデバイス33を操作することなく、簡単に指示を入力できるようになろう。その一方で、ユーザが、PC1bに表示された検査画像に注視している場合、ハードウエアボタンに視線を移し、それを押すことは、作業効率を低下させるだろう。よって、この場合、表示装置37にソフトウエアボタンを表示することで、ユーザは簡単かつ正確にボタンを操作できるようになろう。
【0250】
[観点A23]
アプリケーションプログラム39は、コロニー計数装置を制御する制御装置において実行されるプログラムの一例である。アプリケーションプログラム39は、PC1bに、
複数の検査個体の各々のカウント結果が入力されるセルを含むカウント表を記憶部に記憶させ、
記憶部に記憶されているカウント表を表示装置に表示させ、
表示装置に表示されるカウント表に含まれる複数のセルの中から、カウント結果が入力される対象セルを特定させ、
検査個体の画像である検査画像を取得させ、
ユーザにより入力される計数指示にしたがって、取得部で取得された検査画像に基づき検査個体に含まれるコロニーの数を取得させ、
コロニーの数を対象セルに反映させる。
【0251】
[観点A24]
上記の実施例によれば、コロニー計数装置1を制御する制御方法が提供される。当該制御方法は、
複数の検査個体の各々のカウント結果が入力されるセルを含むカウント表を記憶部に記憶させることと、
記憶部に記憶されているカウント表を表示装置に表示することと、
表示装置に表示されるカウント表に含まれる複数のセルの中から、カウント結果が入力される対象セルを特定することと、
検査個体の画像である検査画像を取得することと、
ユーザにより入力される計数指示にしたがって、取得部で取得された検査画像に基づき検査個体に含まれるコロニーを計数することと、
計数されたコロニーの数を対象セルに反映させることと、
を有する。
【0252】
[観点B1]
記憶装置35は、検査個体についてのコロニーのカウント結果が入力されるセルを含むカウント表と、当該カウント表に関連付けられた識別情報と、を記憶する記憶部として機能する。MCU30およびMCU20は、識別情報を符号化した識別画像(例:一次元シンボル、二次元シンボル)から当該識別情報を取得する識別情報取得部として機能する。MCU30は、取得部により取得された識別情報に関連付けられているカウント表を記憶部から読み出す表管理部として機能する。さらに、MCU30は、表管理部で読み出されたカウント表に含まれる複数のセルの中から、カウント結果が入力される対象セルを特定するセル特定部として機能する。MCU20またはMCU30は、ユーザの操作にしたがった計数指示を生成する計数指示部として機能する。メインカメラ11は、計数指示部で生成された計数指示に基づいて検査個体の画像である検査画像を生成する第一撮像部として機能する。MCU20またはMCU30は、前記第一撮像部で生成された検査画像に基づき検査個体に含まれるコロニーを計数する計数部として機能する。表管理部(例:MCU30)は、セル特定部で特定された対象セルに、計数部により計数されたコロニーの数を反映するように構成されている。このように、識別画像から、カウント結果を入力されることになるカウント表が特定されて表示されるため、コロニーの計数に関するユーザの負担が軽減される。
【0253】
[観点B2]
識別情報取得部は、第一撮像部(例:メインカメラ11)により撮像された識別画像から識別情報を取得するように構成されていてもよい。このように、検査個体を撮像する撮像部を、識別画像を撮像する撮像部として兼用してもよい。
【0254】
[観点B3]
識別情報取得部は第二撮像部を有してもよい。フロントカメラ10は、識別画像を撮像する第二撮像部の一例である。識別情報取得部(例:MCU20,30)は、第二撮像部により撮像された識別画像から識別情報を取得するように構成されていてもよい。
【0255】
[観点B4]
第二撮像部(例:フロントカメラ10)は、検査個体の外観、包装体(例:包装袋、商品パッケージ)により包装された検査個体の外観、および、当該包装体に印刷された情報のうちの少なくとも一つである付加画像を撮像するように構成されていてもよい。記憶部(例:記憶装置35)は、対象セルに対して、付加画像と、当該付加画像から取得される付加情報とのうちの少なくとも一方を関連付けて記憶してもよい。上述されたように、カウント表は、カウント結果が入力されるセルと、画像等を格納可能なセル(例:備考セル、自由列のセル)を有してもよい。この場合、後者のセルには、付加画像(例:商品外観)や付加情報(例:商品コード)が格納されるか、関連付けられてもよい。ユーザは、対象セルに関連付けられて記憶されている付加情報または付加画像を参照することで、どの検査個体についてのカウント結果であるかを、容易に把握できるようになろう。
【0256】
[観点B5]
カウント表は、付加画像と付加情報とのうちの少なくとも一方を保持する付加セル(例:備考セル、自由列のセル)を含んでもよい。ユーザは、付加セルに保持されている付加情報または付加画像を参照することで、どの検査個体についてのカウント結果であるかを、容易に把握できるようになろう。
【0257】
[観点B6]
図29図40が示すように、MCU30およびポインタ57は、カウント表に存在する複数の付加セルから一つの付加セルを選択する選択部として機能してもよい。さらに、MCU30は、選択部により選択された一つの付加セルに、付加画像と付加情報とのうちの少なくとも一方を登録する付加情報登録部として機能してもよい。これにより、ユーザは、カウント表において希望するセルに対して付加画像や付加情報を登録することができる。
【0258】
[観点B7]
MCU30は、対象セルに関連付けられている検査個体の識別情報(例:サンプル名、シャーレ番号)を入手する入手部として機能してもよい。記憶部は、ユーザにより入力される計数指示により第一撮像部により撮像された検査個体の検査画像を検査個体の識別情報と関連付けて記憶するように構成されていてもよい。従来、検査画像と検査個体との関係を正しく記録することは多くの工数が必要であった。たとえば、デジタルカメラで検査画像を取得することが考えられるが、この場合、検査画像と検査個体の識別情報とを人手による紐づけすること必要となるだろう。また、人手による紐づけは、ヒューマンエラーの原因となる。本実施例では、MCU30が対象セルを特定し、かつ、対象セルに関連付けられている検査個体の識別情報に対して検査個体の検査画像を関連付ける。よって、従来によりユーザに必要とされる項数が削減され、かつ、検査個体の検査画像と検査個体の識別情報との関係を正しく記録することが可能となる。
【0259】
[観点B8]
図33が例示するように、MCU30は、検査個体の識別情報と、計数部により計数されたコロニーの数と、検査個体の検査画像と、を含むレポートを生成するレポート生成部として機能してもよい。これにより、ユーザは、どのサンプルの計測結果であるかを直感的に把握できるようになろう。
【0260】
[観点B9]
カウント表においてコロニーの数を入力されるセルには固有のセル識別情報が付与されていてもよい。図41が示すように、MCU30は、固有のセル識別情報を符号化した識別画像221をプリンタ38によりシール270(粘着面を有する樹脂または紙)に印刷してもよい。ユーザは、シャーレ15の側面にシール270を貼り付ける。なお、シャーレ番号は、固有のセル識別情報として利用されてもよい。識別情報取得部(例:MCU30、フロントカメラ10またはメインカメラ11)は、セル識別情報を取得するように構成されていてもよい。セル特定部(例:MCU30)は、識別情報取得部により取得されたセル識別情報に基づき対象セルを特定してもよい。これにより、ユーザが対象セルを指定する手間が省けるようになる。さらに、検査個体に対応した対象セルが正確に特定されるようになろう。
【0261】
[観点B10]
図28が示すように、識別情報取得部(例:MCU30)は、第一撮像部または第二撮像部によりユーザ認証情報を取得してもよい。これにより、ユーザ認証用の専用のカメラやコードリーダーを省略できるようになろう。
【0262】
[観点B11]
図27が例示するように、識別情報取得部(例:MCU30、フロントカメラ10またはメインカメラ11)は、印刷媒体(例:検査リスト220)に印刷された識別画像から識別情報を取得するように構成されていてもよい。
【0263】
[観点B12]
MCU30は、カウント表と、当該カウント表に関連付けられた識別情報とを含む検査リストのデータを作成するデータ作成部として機能してもよい。
【0264】
[観点B13]
識別情報取得部(例:MCU30、フロントカメラ10またはメインカメラ11)は、端末装置1cに表示された識別画像から識別情報を取得するように構成されていてもよい。これにより、紙媒体を削減することが可能となる。
【0265】
[観点B14]
通信回路34は、端末装置1cと通信し、端末装置1cに識別画像を送信する通信部の一例である。
【0266】
[観点B15]
MCU30は、ユーザ操作に応じてカウント表を作成し、記憶部に当該カウント表を記憶させる作成部として機能してもよい。
【0267】
[観点B16]
作成部(例:MCU30)は、コロニーの数のカウント結果を格納するセルに対して検査条件を関連付けてもよい。第一撮像部は、検査条件(例:露光時間、照明の種類、明るさ)にしたがって検査個体を撮像するように構成されていてもよい。
【0268】
[観点B17]
コロニー計数装置1は、第一撮像部を有する筐体(例:上部ユニット2、支持ユニット3および下部ユニット4)をさらに有してもよい。
【0269】
筐体は、検査個体を収容したシャーレ15を保持するステージ5と、検査個体を照明する照明部(例:リング照明装置12、13、同軸照明装置14)と、ユーザにより入力される計数指示を受け付ける受付部(例:第一ハードウエアボタン8a)と、を有してもよい。
【0270】
[観点B18]
コロニー計数装置1は、第一撮像部および第二撮像部を有する筐体(例:上部ユニット2、支持ユニット3および下部ユニット4)をさらに有してもよい。筐体は、検査個体を収容したシャーレ15を保持するステージ5と、検査個体を照明する照明部(例:リング照明装置12、13、同軸照明装置14)と、ユーザにより入力される計数指示を受け付ける受付部(例:第一ハードウエアボタン8a)とを有してもよい。さらに、筐体は、凹部4aを有してもよい。第二撮像部(例:フロントカメラ10)は、凹部に配置されていてもよい。受付部(例:第一ハードウエアボタン8a)は、ステージと凹部との間にある操作部(操作部8)に配置されていてもよい。これにより、簡単に、計数指示を入力することが可能となる。
【0271】
[観点B19]
コロニー計数装置1が第一状態にあるときに受付部(例:第一ハードウエアボタン8a)が撮像指示を受け付けると、第一撮像部が撮像を実行してもよい。コロニー計数装置1が第一状態と異なる第二状態にあるときに受付部が撮像指示を受け付けると、第二撮像部が撮像を実行してもよい。これにより、単一の受付部に対する同一の操作であるにも拘らず、異なる撮像部に撮像を指示することが可能となる。第一状態とは、たとえば、カウント表がすでに特定された状態である。第二状態とは、たとえば、カウント表がまだ特定されていない状態である。
【0272】
[観点B20]
コロニー計数装置を制御するプロセッサにおいて実行されるプログラムであって、プロセッサに、
検査個体についてのコロニーのカウント結果が入力されるセルを含むカウント表と、当該カウント表に関連付けられた識別情報と、を記憶部に記憶させ、
前記識別情報を符号化した識別画像から当該識別情報を取得させ、
前記取得された前記識別情報に関連付けられている前記カウント表を前記記憶部から読み出させ、
前記読み出されたカウント表に含まれる複数のセルの中から、カウント結果が入力される対象セルを特定させ、
ユーザの操作にしたがった計数指示を生成させ、
前記生成された計数指示に基づき前記検査個体の画像である検査画像を生成させ、
前記生成された検査画像に基づき前記検査個体に含まれるコロニーを計数させ、
前記特定された対象セルに、前記計数されたコロニーの数を反映させる。
【0273】
[観点B23]
コロニー計数装置を制御するプロセッサにおいて実行される制御方法であって、
検査個体についてのコロニーのカウント結果が入力されるセルを含むカウント表と、当該カウント表に関連付けられた識別情報と、を記憶部に記憶することと、
識別情報を符号化した識別画像から当該識別情報を取得することと、
前記取得された前記識別情報に関連付けられている前記カウント表を前記記憶部から読み出すことと、
前記読み出されたカウント表に含まれる複数のセルの中から、カウント結果が入力される対象セルを特定することと、
ユーザの操作にしたがった計数指示を生成することと、
前記生成された計数指示に基づき、前記検査個体の画像である検査画像を生成することと、
前記生成された検査画像に基づき前記検査個体に含まれるコロニーを計数することと、
前記特定された対象セルに、前記計数されたコロニーの数を反映することと、
を有する。
【0274】
[観点C1]
メインカメラ11は、検査個体を撮像して当該検査個体の画像を生成する撮像部として機能する。MCU20,30は、撮像部により生成された初期状態の検査個体の画像を基準画像103bとして登録する登録部として機能する。MCU20,30は、登録部により登録された基準画像103bに含まれる残渣を特定するとともに、基準画像103bと、撮像部により生成された培養後の検査個体の画像である検査画像103aとにおける二以上の共通の特徴箇所(例:目印15c、15g、15f)の各々のズレに基づいて、基準画像103bに含まれる残渣に対応する検査画像103aにおける残渣の位置を特定する残渣特定部として機能する。MCU20,30は、残渣特定部により特定される残渣の位置に基づいて、残渣をコロニーとしての計数からは除外して検査画像103aに含まれるコロニーの個数を計数する計数部として機能する。これにより、コロニーの計数精度が向上する。
【0275】
なお、表示装置37は、基準画像103bと検査画像103aとのうち少なくとも一方を表示する表示部として機能する。MCU20、30は、基準画像103bと検査画像103aとから二以上の共通の特徴箇所(例:目印15c、15g、15f)を特定する特徴箇所特定部の一例である。MCU20、30は、二以上の共通の特徴箇所に基づき基準画像103bの位置および回転角度と検査画像103aの位置および回転角度とを位置合わせし、基準画像103bに含まれず、かつ、検査画像103aに含まれているコロニーの個数を計数する計数部として機能する。つまり、MCU20、30は、基準画像と検査画像とから二以上の共通の特徴箇所を特定し、特定された二以上の共通の特徴箇所に基づき基準画像の位置および回転角度と検査画像の位置および回転角度とを位置合わせし、当該位置合わせ後の検査画像と、基準画像に含まれる残渣の位置と、に基づいて、検査画像に含まれる残渣とコロニーとのうち少なくとも一つの残渣を除外して当該コロニーの個数を計数する計数部として機能してもよい。
【0276】
[観点C2]
記憶装置35は、登録部により基準画像103bを登録する際に、基準画像103bと、基準画像103bが示す検査個体の識別情報とを関連付けて記憶する記憶部として機能する。MCU30、キーボード32、ポインティングデバイス33、メインカメラ11およびフロントカメラ10は、登録部により登録された基準画像103bを読み出すための検査個体の識別情報の入力を受け付ける受付部として機能する。残渣特定部(例:MCU30)は、受付部により受け付けられた検査個体の識別情報に関連付けられている基準画像103bに含まれる残渣に対応する検査画像103aにおける残渣の位置を特定してもよい。このように、検査個体の識別情報を用いることで、基準画像103bと検査画像103aとを簡単に関連付けることができる。つまり、検査個体の識別情報を用いることで、基準画像103bの撮影と検査画像103aの撮影とを簡単に関連付けることができる。
【0277】
なお、MCU30、キーボード32、ポインティングデバイス33、メインカメラ11およびフロントカメラ10は、検査個体の識別情報(例:シャーレ番号)の入力を受け付ける受付部の一例である。シャーレ番号は一例にすぎず、数値以外の文字や記号を含む識別情報が採用されてもよい。記憶装置35は、受付部により受け付けされた検査個体の識別情報に関連付けて基準画像103bを記憶する記憶部として機能する。MCU30は、受付部により受け付けされた検査個体の識別情報と基準画像とを関連付けて記憶部に登録する登録部として機能する。S112やS132が例示するように、受付部は、計数部がコロニーの個数の計数を開始する前に、検査個体の識別情報の入力を再び受け付けるように構成されていてもよい。S117が例示するように、計数部は、受付部により受け付けられた検査個体の識別情報に関連付けられている基準画像103bを読み出し、当該基準画像103bと、撮像部により取得された検査画像103aとを用いて、基準画像103bに含まれず、かつ、検査画像103aに含まれているコロニーの個数を計数するように構成されていてもよい。つまり、計数部は、基準画像と検査画像とを用いて、検査画像に含まれる少なくとも一つの残渣を除外してコロニーの個数を計数するように構成されていてもよい。
【0278】
[観点C3]
MCU30およびUI300は、撮像部に撮像条件を設定する設定部の一例である。記憶部(例:記憶装置35)は、培養前の検査個体を撮像する際に撮像部に適用された撮像条件を検査個体の識別情報に関連付けて記憶するように構成されている。登録部(例:MCU30)は、培養前の検査個体を撮像する際に撮像部に適用された撮像条件を検査個体の識別情報に関連付けて記憶部に記憶させるように構成されている。設定部(例:MCU30)は、検査個体の培養後に受付部により再び受け付けられた検査個体の識別情報に関連付けられている撮像条件(例:露光時間)を記憶部から読み出し、撮像部に当該撮像条件を設定するように構成されていてもよい。つまり、撮像部は、設定部により設定された撮像条件にしたがって培養後の検査個体を撮像してコロニーをカウントするための検査画像を取得する。これにより、検査個体の識別情報を介して、基準画像103bの撮影と検査画像103aの撮影とを簡単に関連付けることができる。同一条件で撮影が実行されるため、残渣の影響が精度よく低減されるであろう。
【0279】
[観点C4]
リング照明装置12、13および同軸照明装置14は、検査個体を照明する照明部の一例である。設定部(例:MCU30、UI300)は、照明部に照明条件を設定するように構成されている。記憶部(例:記憶装置35)は、培養前の検査個体を撮像する際に照明部に設定された照明条件(例:照明の種類、明るさ)を検査個体の識別情報に関連付けて記憶するように構成されていてもよい。つまり、登録部(例:MCU30)は、培養前の検査個体を撮像する際に照明部に設定された照明条件を検査個体の識別情報に関連付けて記憶部に登録する。設定部(例:MCU30)は、検査個体の培養後に受付部により再び受け付けられた検査個体の識別情報に関連付けられている照明条件を記憶部から読み出し、照明部に当該照明条件を設定するように構成されていてもよい。撮像部は、設定部により設定された照明条件にしたがって培養後の検査個体が照明された状態で、検査個体を撮像してコロニーをカウントするための検査画像を取得する。これにより、同一照明条件で撮影が実行されるため、残渣の影響が精度よく低減されるであろう。
【0280】
[観点C5]
図52などが例示するように、二以上の共通の特徴箇所のうちの少なくとも一つの特徴箇所は、検査個体を収容する容器に付与されている目印であってもよい。つまり、残渣特定部(例:MCU30)は、検査個体を収容する円筒形の透明容器の上面または下面の周縁部に付与されている目印を、二以上の共通の特徴箇所のうちの少なくとも一つの特徴箇所として認識してもよい。これにより、二つの画像が精度よく位置合わせされよう。その結果、残渣の影響が精度よく低減されるであろう。なお、二つの目印15c、15fがシャーレ15の直径上に存在すると、残渣の影響を低減することに失敗することがある。この場合は、目印15c、15fを結ぶ直線とは重ならない位置に第三の目印が存在すればよい。
【0281】
[観点C6]
図52などが例示するように、目印は、容器(例:内皿15a)にペンで描かれた目印、容器に彫刻された目印、または、容器に貼付された目印であってもよい。また、残渣特定部(例:MCU30)は、線状の目印を少なくとも一つの特徴箇所として認識してもよい。
【0282】
[観点C7]
容器(例:シャーレ15)は、内側容器(例:内皿15a)と、内側容器の蓋となる外側容器(例:外皿15b)とを有してもよい。
この場合、目印は、内側容器に設けられる。計数部(例:MCU30)は、内側容器に設けられた二以上の共通の特徴箇所に基づき基準画像に含まれる内側容器の位置および回転角度と検査画像に含まれる内側容器の位置および回転角度とを位置合わせする。また、円筒形の透明容器は、円筒形で有底の培地が形成された内側透明容器と、当該内側透明容器の蓋となる円筒形の外側透明容器とを有してもよい。この場合、残渣特定部(例:MCU30)は、内側透明容器の底面の周縁部に付与されている目印を、二以上の共通の特徴箇所のうちの少なくとも一つの特徴箇所として認識してもよい。
【0283】
一般に、内側容器に外側容器を容易に被せるには、内側容器の外径よりも外側容器の内径が大きくなければならない。つまり、内側容器と外側容器との間にはクリアランスが必要となる。しかし、クリアランスが大きくなると、基準画像103bの撮影時と検査画像103aの撮影時とで、内側容器に対する外側容器の位置がずれてしまい、シャーレ15を正確に位置決めすることが困難となりやすい。そのため、また、残渣は一般に内側容器に付着するが、シャーレ15を保温庫に対して出し入れする際に外側容器が回転してしまうことがある。この場合、外側容器に設けられた目印では、残渣の低減が精度よく実行できないことがある。内側容器の目印は、内側容器の残渣に対して位置変化しない。よって、内側容器の目印は、残渣を精度よく低減することに寄与するであろう。
【0284】
[観点C8]
二以上の共通の特徴箇所のうちの少なくとも一つの特徴箇所は、検査個体を収容する容器、検査個体に付着している残渣、または、検査個体の一部であってもよい。つまり、残渣特定部(例:MCU30)は、検査個体を収容する容器、検査個体に付着している残渣、または、検査個体の一部を二以上の共通の特徴箇所のうちの少なくとも一つの特徴箇所として認識してもよい。これにより、容器に目印を付与する手間が省けることになる。
【0285】
[観点C9]
図53が例示するように、表示部(例:表示装置37)は、培養前の検査個体から取得された基準画像103bと、撮像部により取得される培養後の検査個体の動画像と、を重畳して表示するように構成されていてもよい。これにより、ユーザは、検査画像103aを撮影する際に、手動でシャーレ15を位置合わせしやすくなるであろう。これにより、残渣の低減精度が向上するであろう。
【0286】
[観点C10]
撮像部(例:メインカメラ11)は、ユーザが培養後の検査個体を手動で位置合わせした後に、当該培養後の検査個体から検査画像103aを取得してもよい。計数部(例:MCU20、30)は、基準画像103bと、ユーザが培養後の検査個体を手動で位置合わせした後に撮像部により取得された検査画像103aと、から二以上の共通の特徴箇所を特定する特徴箇所特定部を有してもよい。計数部(例:MCU20、30)は、二以上の共通の特徴箇所に基づき基準画像103bの位置および回転角度と検査画像103aの位置および回転角度とを位置合わせし、検査画像103aに含まれる少なくとも一つの残渣を除外してコロニーの個数を計数するように構成されていてもよい。このように、手動により位置合わせと画像処理による位置合わせとを活用することで、残渣の低減精度がさらに向上するであろう。
【0287】
[観点C11]
ステージ5は、検査個体を載置されるステージの一例である。位置合わせ部材7は、ステージ上に設けられ、ステージに載置された検査個体に対するユーザによる手動での位置合わせを補助する位置合わせ部材の一例である。位置合わせ部材は、検査個体を収容する容器に対して少なくとも二点で接触して容器を支持するように形成された形状を有してもよい。たとえば、位置合わせ部材の接触面の水平断面形状と、容器の非接触面の水平断面形状とが相似であってもよい。あるいは、水平断面形状が円形のシャーレを二点で接触して支持するよう、位置合わせ部材は、ステージの上方から見下ろしたときに、略八の字の形状をしていてもよい。また、複数のウェルを有するウェルプレートは水平断面形状が矩形である。したがって、位置合わせ部材が少なくとも二点で接触してウェルプレートを支持できるよう、位置合わせ部材は、水平断面形状がL字形状を有していてもよい。これにより、手動により位置合わせの精度が向上するであろう。
【0288】
[観点C12]
MCU30は、複数の検査個体の各々のカウント結果が入力されるセルを含むカウント表55を作成し、記憶部に記憶させる表管理部(作成部)として機能してもよい。表示装置37は、表管理部により作成された前記カウント表を表示する表示部として機能する。MCU30およびポインタ57は、表示部に表示されるカウント表55に含まれる複数のセルの中から対象セルを特定するセル特定部として機能してもよい。MCU30は、対象セルに対して検査個体の識別情報(例:シャーレ番号)と基準画像103bとを関連付けて登録する登録部として機能してもよい。計数部(例:MCU30)は、対象セルが特定されると、対象セルに関連付けられている基準画像103bを記憶部から読み出し、基準画像に含まれる残渣を低減して検査画像に含まれているコロニーの個数を計数し、計数されたコロニーの個数を対象セルに入力または関連付けてもよい。これにより、ユーザは、対象セルを特定することで、検査画像103aに対応する基準画像103bを読み出すことが可能となる。計数部(例:MCU20、30)は、コロニーの個数を対象セルに入力または関連付けるように構成されていてもよい。これにより、カウント結果を正しくセルに入力することが可能となろう。
【0289】
[観点C13]
カウント表55は、検査個体ごとに第一セル291と第二セル292とを有してもよい。この場合、第一セル291は、基準画像103bが取得済みであるかどうかを示す。第二セル292は、第一セルに関連付けられており、コロニーの個数を示す。ここで、対象セルは、第二セルである。このように、カウント結果を入力される対象セルと、基準画像103bに関連付けられているセルとが、さらに、紐づけられていてもよい。
【0290】
[観点C14]
撮像部(例:メインカメラ11)は、第一セルがクリックされると、培養前の検査個体を撮像して基準画像103bを取得してもよい。さらに、撮像部(例:メインカメラ11)は、第二セルがクリックされると、培養後の検査個体を撮像して検査画像103aを取得してもよい。このように、セルがクリックされることが撮影のトリガとされてもよい。なお、セルがクリックされることには、セルがクリックされた後に撮影ボタンが操作されることが、含まれてもよい。
【0291】
撮像部(例:メインカメラ11)は、第一セルがクリックされると、培養前の検査個体を撮像して基準画像103bを取得してもよい。撮像部(例:メインカメラ11)は、第二セルがクリックされると、第一セルに関連付けられている撮像条件を用いて、培養後の検査個体を撮像して検査画像103aを取得してもよい。このように、検査画像103a用の撮像条件は、第二セル292を介して第一セル291に関連付けられていてもよい。これにより、基準画像103bの撮像条件と検査画像103aの撮像条件が一致するため、残渣の低減精度が向上するであろう。また、ユーザが基準画像103bの撮像条件と検査画像103aの撮像条件とを個別に設定する手間が省けるであろう。
【0292】
[観点C15]
計数部(例:MCU20、30)は、残渣の影響を軽減する第一モードと、残渣の影響を軽減しない第二モードとを有してもよい。表示部(例:表示装置37)は、第一モードまたは第二モードを選択するためのアイコンを表示してもよい。このように、残渣低減処理のオン/オフがアイコンを通じて選択されてもよい。
【0293】
[観点C16]
図50が例示するように、MCU30およびUI310は、記憶部に記憶されている複数の候補画像から基準画像103bを指定する指定部として機能してもよい。図51が例示するように、MCU30は、指定部により指定された基準画像103bに関連付けられている培地の種類、希釈倍率、検査個体の名称、および、検査個体の識別情報のうち少なくとも一つを記憶部から読み出して表示部に表示させる表示制御部として機能してもよい。
【0294】
[観点C17]
検査個体の識別情報は、検査個体を収容する容器の識別情報(例:シャーレ番号)であってもよい。ユーザにとってなじみ深い情報が使用されれば、ユーザにとって使いやすいコロニー計数装置1が実現されるであろう。
【0295】
[観点C18]
計数部(例:MCU20、30)は、基準画像103bにおける残渣の位置を特定し、二以上の共通の特徴箇所に基づき、検査画像103aの位置および回転角度と、基準画像103bの位置および回転角度の相対的なズレを求め、残渣の位置と、相対的なズレに基づいて、検査画像にマスク領域を設定し、マスク領域が設定された検査画像103aからコロニーの個数を計数してもよい。
【0296】
[観点C19]
メインカメラ11は、培養前の検査個体を撮像して当該検査個体の残渣の影響を低減するための基準画像103bを取得するとともに、培養後の検査個体を撮像してコロニーをカウントするための検査画像103aを取得する撮像部として機能する。MCU20、30は、基準画像103bにおけるコロニーの個数と、検査画像103aにおけるコロニーの個数と、を計数し、検査画像103aにおけるコロニーの個数から基準画像103bにおけるコロニーの個数を減算して、培養後の検査個体におけるコロニーの個数を求める計数部として機能してもよい。このような比較的な演算負荷の小さなアルゴリズムが採用されてもよい。なお、MCU30は、ユーザ指示に応じて複数のアルゴリズムを切り替えてもよい。これにより、ユーザは、よりカウント結果のすぐれたアルゴリズムを採用できるようになろう。
【0297】
[観点C20]
コロニー計数装置の制御方法は、
培養前の検査個体を撮像して当該検査個体の残渣の影響を低減するための基準画像103bを取得することと、
培養後の検査個体を撮像してコロニーをカウントするための検査画像103aを取得することと、
基準画像103bと検査画像103aとから二以上の共通の特徴箇所を特定することと、
基準画像103bと検査画像103aとから二以上の共通の特徴箇所を特定し、当該特定された二以上の共通の特徴箇所に基づき基準画像103bの位置および回転角度と検査画像103aの位置および回転角度とを位置合わせし、当該位置合わせ後の検査画像103aと、基準画像103bに含まれる残渣の位置と、に基づいて、検査画像103aに含まれる残渣とコロニーとのうち少なくとも一つの残渣を除外して当該コロニーの個数を計数することと、を有してもよい。
【0298】
あるいは、コロニー計数装置の制御方法は、
検査個体を撮像して当該検査個体の残渣の影響を低減するための基準画像を取得することと、
培養後の検査個体を撮像してコロニーをカウントするための検査画像を取得することと、
基準画像に含まれる残渣を特定することと、
基準画像と検査画像とにおける二以上の共通の特徴箇所の各々のズレに基づいて、当該基準画像に含まれる残渣に対応する当該検査画像における残渣の位置を特定することと、特定された残渣の位置に基づいて、当該残渣をコロニーとしての計数からは除外して検査画像に含まれるコロニーの個数を計数することと、
を有してもよい。
【0299】
[観点C21]
アプリケーションプログラム39と制御プログラム27とは、コロニー計数装置を制御するコンピュータにより実行されるプログラムの一例である。プログラムは、コンピュータ(例:MCU20、30)に、
培養前の検査個体を撮像して当該検査個体の残渣の影響を低減するための基準画像103bを取得させ、
培養後の検査個体を撮像してコロニーをカウントするための検査画像103aを取得させ、
基準画像103bと検査画像103aとから二以上の共通の特徴箇所を特定させ、当該特定された二以上の共通の特徴箇所に基づき基準画像103bの位置および回転角度と検査画像103aの位置および回転角度とを位置合わせさせ、当該位置合わせ後の検査画像103aと、基準画像103bに含まれる残渣の位置と、に基づいて、検査画像103aに含まれる残渣とコロニーとのうち少なくとも一つの残渣を除外して当該コロニーの個数を計数させてもよい。
【0300】
あるいは、コロニー計数装置を制御するコンピュータにより実行されるプログラムは、当該コンピュータに、観点C20の制御方法を実行させてもよい。
【0301】
発明は上記の実施形態に制限されるものではなく、発明の要旨の範囲内で、種々の変形・変更が可能である。
【符号の説明】
【0302】
1:コロニー計数装置、35:記憶装置、30:MCU
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37
図38
図39
図40
図41
図42
図43
図44
図45
図46
図47
図48
図49
図50
図51
図52
図53
図54
図55
図56
図57
図58
図59
図60
図61
図62
図63
図64
図65
図66