(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024101500
(43)【公開日】2024-07-29
(54)【発明の名称】読取装置、及び判定システム
(51)【国際特許分類】
G06Q 30/06 20230101AFI20240722BHJP
G06Q 10/087 20230101ALI20240722BHJP
【FI】
G06Q30/06
G06Q10/087
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023005513
(22)【出願日】2023-01-17
(71)【出願人】
【識別番号】508276545
【氏名又は名称】コンフェックス株式会社
(71)【出願人】
【識別番号】506359288
【氏名又は名称】株式会社アスタリスク
(74)【代理人】
【識別番号】100191189
【弁理士】
【氏名又は名称】浅野 哲平
(74)【代理人】
【識別番号】100199761
【弁理士】
【氏名又は名称】福屋 好泰
(72)【発明者】
【氏名】大森 くる美
(72)【発明者】
【氏名】三品 英嗣
(72)【発明者】
【氏名】谷澤 菜月
(72)【発明者】
【氏名】平葭 萌
(72)【発明者】
【氏名】穴田 浩一
(72)【発明者】
【氏名】杉原 雄太
(72)【発明者】
【氏名】鈴木 規之
【テーマコード(参考)】
5L030
5L049
【Fターム(参考)】
5L030BB63
5L030BB72
5L049BB63
5L049BB72
(57)【要約】
【課題】商品に表記された賞味期限等の読取精度を向上させる。
【解決手段】本発明の読取装置は、商品に表記されたシンボルを解析するシンボル解析部30と、商品に表記された日付を解析する日付解析部40と、を備え、前記日付解析部40は、前記商品に対応付けて前記日付の表記形式を記憶する記憶部10から、前記解析されたシンボルに対応する商品の表記形式を取得し、取得した表記形式に基づいて前記日付を特定する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
商品に表記されたシンボルを解析するシンボル解析部と、
商品に表記された日付を解析する日付解析部と、
を備え、
前記日付解析部は、
前記商品に対応付けて前記日付の表記形式を記憶する記憶部から、前記解析されたシンボルに対応する商品の表記形式を取得し、取得した表記形式に基づいて前記日付を特定する、読取装置。
【請求項2】
記憶された日付の表記形式に基づいて、商品に表記された日付を解析する日付解析部と、
前記解析された日付に基づいて、前記商品の出荷の可否を判定する判定部と、
を備える、判定システム。
【請求項3】
現在日付を取得する日付取得部を備え、
前記判定部は、前記現在日付から前記日付までの日数に基づいて、前記出荷の可否を判定することを特徴とする、請求項2に記載の判定システム。
【請求項4】
出荷された前記商品に表記され、前記日付解析部により解析された日付を記憶する日付記憶部を備え、
前記判定部は、
出荷する前記商品に表記され、前記日付解析部により解析された日付と、前記日付記憶部に記憶された日付を比較して、前記出荷の可否を判定することを特徴とする、請求項2に記載の判定システム。
【請求項5】
前記解析した日付の表記形式を記憶する形式記憶部と、
を備える、請求項2に記載の判定システム。
【請求項6】
前記形式記憶部には、前記商品の製造元において採用頻度の高い前記日付の表記形式が予め記憶されることを特徴とする、請求項2に記載の判定システム。
【請求項7】
前記商品に表記された日付を撮像し、当該日付の画像を生成する撮像部を備え、
前記日付解析部は、
前記日付の画像および当該日付を教師データとする機械学習を実行し、学習済みモデルを生成する学習部と、
前記撮像部によって生成された前記日付の画像を推論データとして前記学習済みモデルに入力し、当該学習済みモデルから出力された日付を取得する推論部と、
を含む、請求項2に記載の判定システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、読取装置、及び判定システムに関する。
【背景技術】
【0002】
製造業者によって製造された食料や飲料(以下、これらをまとめて「食品」という。)は、卸売業者や仲卸業者などの中間業者を経て、小売業者に流通され、消費者に対して販売される。従来の流通業者や小売業者は、流通する食品の賞味期限や消費期限(以下、これらをまとめて「賞味期限等」という。)を目視によって確認していたが、目視による確認では確認漏れや確認ミスが生じ得ることから、機械的に当該賞味期限等を確認することができるシステムが開発された。
【0003】
例えば、特許文献1に記載の自動販売機は、商品に表記された賞味期限を光学的に読み取るOCR(光学的文字認識)と、OCRによって検出した賞味期限の日時と現在日時とを比較して、賞味期限切れであるか否かを判定する判定手段と、当該判定手段の判定結果に基づいて商品の排出先を制御する制御手段と、を備えている。
【0004】
上記特許文献1に記載の技術によれば、機械的に賞味期限等を確認することができるので、賞味期限等の確認漏れや確認ミスの発生を低減させることが可能となる。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、賞味期限等の表記パターンは統一されておらず、メーカーごと、商品ごとに異なる表記パターンが採用されている。更に、同一メーカーであっても、製造施設における印刷装置の仕様に応じて賞味期限等の表記が異なる場合がある。具体的には、一の製造施設の印刷装置では、賞味期限等を4桁の年表記、月表記、日表記の順で表記(yyyy/mm/dd)しているのに対し、他の製造施設の印刷装置では、2桁の年表記、月表記の順で表記(yy/mm)している場合がある。更には、商品の表記スペースの関係上、年、月、日を連続的に表記(yyyymmdd)する場合もある。また、年表記と月表記の間の区切りを“.”(ドット)で区切る表記パターンもある。したがって、賞味期限等の読取技術においては、種々の表記パターンへの対応と、その読取精度の向上が求められている。
【0007】
そこで、本発明は、種々の表記パターンに対応し、その読取精度が向上した読取装置、及び判定システムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するため、本発明の読取装置は、商品に表記されたシンボルを解析するシンボル解析部と、商品に表記された日付を解析する日付解析部と、を備え、前記日付解析部は、前記商品に対応付けて前記日付の表記形式を記憶する記憶部から、前記解析されたシンボルに対応する商品の表記形式を取得し、取得した表記形式に基づいて前記日付を特定する、ことを特徴とする。
【0009】
また、上記目的を達成するため、本発明の判定システムは、記憶された日付の表記形式に基づいて、商品に表記された日付を解析する日付解析部と、前記解析された日付に基づいて、前記商品の出荷の可否を判定する判定部と、を備えることを特徴とする。
【0010】
また、本発明の判定システムは、現在日付を取得する日付取得部を備え、前記判定部は、前記現在日付から前記日付までの日数に基づいて、前記出荷の可否を判定することを特徴とする。
【0011】
また、本発明の判定システムは、出荷された前記商品に表記され、前記日付解析部により解析された日付を記憶する日付記憶部を備え、前記判定部は、出荷する前記商品に表記され、前記日付解析部により解析された日付と、前記日付記憶部に記憶された日付を比較して、前記出荷の可否を判定することを特徴とする。
【0012】
また、本発明の判定システムは、前記解析した日付の表記形式を記憶する形式記憶部と、を備えることを特徴とする。
【0013】
また、本発明のシステムは、前記商品に表記された日付を撮像し、当該日付の画像を生成する撮像部を備え、前記日付解析部は、前記日付の画像および当該日付を教師データとする機械学習を実行し、学習済みモデルを生成する学習部と、前記撮像部によって生成された前記日付の画像を推論データとして前記学習済みモデルに入力し、当該学習済みモデルから出力された日付を取得する推論部と、を含むことを特徴とする。
【発明の効果】
【0014】
本発明の読取装置、及び判定システムによれば、種々の表記パターンに対応し、その読取精度を向上させることができる。
【図面の簡単な説明】
【0015】
【
図1】本発明の実施形態に係る判定システムの概要を示した図
【
図3】(a)上記判定システムが備える読取装置のハードウェア構成図、(b)上記判定システムが備えるサーバのハードウェア構成図、(c)上記判定システムの機能ブロック図
【
図4】(a)食品マスタ、(b)メーカーマスタ、(c)小売マスタ、(d)在庫管理テーブル、(e)発注出荷管理テーブル、(f)賞味日数テーブルの例を示す図
【
図5】(a)フォーマットマスタ、(b)デフォルトフォーマットテーブル、(c)前回出荷賞味期限管理テーブルの例を示す図
【発明を実施するための形態】
【0016】
以下、図面に基づいて、本発明の実施形態に係る判定システムおよび読取装置を説明する。なお、実施形態の説明では、食品の賞味期限を例にして、判定システムおよび読取装置を説明しているが、読取装置の読取対象は食品の消費期限であっても良いし、判定システムは食品の消費期限に基づいて出荷の可否を判定しても構わない。
【0017】
本実施形態の判定システム100(
図2)は、食品の流通業者が有する施設において用いられる。当該流通業者は、メーカーから食品を仕入れ、仕入れた食品を小売業者に販売、出荷する卸業者であって、仕入れた食品を一時的に保管・管理する施設を備えている。当該施設は、代表的には物流センターであり、
図1に示すように、当該施設では、入荷・入庫工程(s1)、在庫管理工程(s2)、ピッキング工程(s4)、及び出荷工程(s5)を経て、食品が小売業者に出荷される。
【0018】
入荷・入庫工程(s1)は、メーカーから仕入れた食品を受け取り、受け取った食品を所定の場所に移動させる工程である。当該入荷・入庫工程(s1)では、本実施形態の判定システム100によって後述の入荷登録処理(s10)が実行される。在庫管理工程(s2)は、保管されている食品を管理する工程である。当該在庫管理工程(s2)において、小売業者からの発注が生じた場合(s3:yes)には、ピッキング工程(s4)が実施される。ピッキング工程(s4)は、発注書に基づいて出荷すべき食品をピッキングする工程である。当該ピッキング工程(s4)では、本実施形態の判定システム100によって後述のピッキング情報生成処理(s20)、読取処理(s30)、及び判定処理(s40)が実行される。出荷工程(s5)は、発注元である小売業者に向けて食品を出荷する工程である。当該出荷工程(s5)では、本実施形態の判定システム100によって後述の出荷登録処理(s50)が実行される。以下、本実施形態の判定システム100のハードウェア構成を説明した上で、判定システム100における各処理を説明することとする。
【0019】
図2に示すように、本実施形態の判定システム100は、複数のコンピュータ110と、複数の読取装置120と、サーバ130と、を備えおり、施設内に設けられたネットワークを介して、複数のコンピュータ110および複数の読取装置120がサーバ130と通信可能となっている。
【0020】
上記コンピュータ110の一方は、食品の入荷エリアに配置されており、入荷された食品の入荷登録処理(s10)を行う入荷登録用端末として機能するコンピュータである。コンピュータ110の他方は、食品の発注を受け付ける受付スタッフによって操作されるものであり、受付用端末として機能するコンピュータである。これら複数のコンピュータ110は、公知のパソコンであり、ネットワークを介してサーバ130と通信を行う通信部として機能するネットワークモジュールと、テキスト情報を入力するテキスト入力部として機能するキーボードと、座標を入力する座標入力部として機能するマウスと、当該ネットワークモジュール、キーボード、及びマウスを制御するとともに情報を処理する処理部として機能するCPUと、当該CPUに実行されるプログラムを記憶する記憶部として機能するメモリと、を備えている。
【0021】
複数の読取装置120は、出荷対象の食品をピッキングする際に、当該食品に表記されたシンボルであるバーコードおよび賞味期限等を読み取る装置であり、ピッキングを行うスタッフにより使用される。
図3に示すように、読取装置120の各々は、公知のスマートフォンやタブレット端末などのスマートデバイスであり、サーバ130と通信を行う通信部として機能するネットワークモジュール121と、情報を表示する表示部として機能すると共にユーザによるタッチ入力を受け付ける入力部として機能するタッチパネルディスプレイ122と、食品等を撮像する撮像部20として機能するカメラ123と、当該ネットワークモジュール121、タッチパネルディスプレイ122、及びカメラ123を制御するとともに情報を処理するCPU124と、当該CPU124に実行されるプログラムを記憶する記憶部として機能するメモリ125と、を備えている。
【0022】
図2及び
図3に示すように、サーバ130は、食品の入荷から出荷までを管理する管理装置として機能する装置である。当該サーバ130は、ネットワークを介して上記複数のコンピュータ110および複数の読取装置120と通信する通信部として機能するネットワークモジュール131と、情報を処理するCPU132と、当該CPU132に実行されるプログラムを記憶する記憶部として機能するメモリ133と、食品を管理するための情報を記憶するデータベース134と、を備えている。
【0023】
データベース134は、
図4、
図5に示すように、食品マスタ、メーカーマスタ、小売マスタ、在庫管理テーブル、発注出荷管理テーブル、賞味日数テーブル、及び前回出荷賞味期限管理テーブルを備えている。以下、各テーブルの詳細を説明する。
【0024】
食品マスタは、当該施設において取り扱われる食品の情報が登録されるテーブルであり、食品IDフィールド、食品名フィールド、メーカーフィールド、及びJANコードフィールドを備える。食品IDフィールドは、取り扱われる食品を識別するための識別情報である食品IDが登録されるフィールドである。食品名フィールドは食品の名称が登録されるフィールドである。メーカーフィールドは、当該食品を製造するメーカーを指標するメーカーIDが登録されるフィールドである。JANコードフィールドは、当該食品に付与されたJANコードが登録されるフィールドである。当該食品マスタは、取り扱い食品が追加される度にレコードが追加され、追加されたレコードの各フィールドに対して所定の食品の情報が登録される。このように、データベース134は、食品に関する種々の情報を互いに対応付けて記憶する食品情報記憶部(記憶部10)として機能している。
【0025】
メーカーマスタは、食品の仕入先であるメーカー(製造業者)に関する情報が登録されるテーブルであり、メーカーIDフィールド、メーカー名称フィールド、及び他のメーカー情報フィールドを備える。メーカーIDフィールドは、メーカーを識別する識別情報であるメーカーIDが登録されるテーブルである。メーカー名称フィールドは、メーカーの名称が登録されるフィールドである。他のメーカー情報フィールドは、例えば、メーカーの住所や電話番号、担当者のメールアドレス、及び/又は電話番号が登録されるフィールドである。当該メーカーマスタは、食品の仕入先となるメーカーが追加される度にレコードが追加され、追加されたレコードの各フィールドに対して所定のメーカーの情報が登録される。このようにデータベース134は、メーカーに関する種々の情報を互いに対応付けて記憶するメーカー情報記憶部(記憶部10)として機能している。
【0026】
小売マスタは、食品の出荷先である小売業者に関する情報が登録されるテーブルであり、小売IDフィールド、小売名称フィールド、小売ルールフィールド、及びその他の情報フィールドを備える。小売IDフィールドは、小売業者を識別するための識別情報である小売IDが登録されるテーブルである。小売名称フィールドは、小売業者の名称が登録されるフィールドである。その他の情報フィールドは、例えば、小売業者の住所や電話番号、担当者のメールアドレス、及び/又は電話番号が登録されるフィールドである。小売ルールフィールドは、出荷可否の判定基準日を定めるための情報が登録されるフィールドであって、当該情報は小売業者毎に決められる。当該小売マスタは、食品の出荷先となる小売業者が追加される度にレコードが追加され、追加されたレコードの各フィールドに対して所定の小売業者の情報が登録される。このようにデータベース134は、小売業者に関する種々の情報を互いに対応付けて記憶する小売情報記憶部(記憶部10)として機能している。
【0027】
在庫管理テーブルは、当該施設に保管されている食品を管理するためのテーブルであって、食品IDフィールド、JANコードフィールド、及び在庫数フィールドを備えている。食品IDフィールドは、保管されている食品の食品IDが登録されるフィールドである。JANコードフィールドは、保管されている食品に付与されたJANコードが登録されるフィールドである。在庫数フィールドは、当該食品の保管数が登録されるフィールドであり、食品の入荷数量や食品の出荷数量に基づいて当該保管数の値が増減する。このようにデータベース134は、在庫に関する情報を互いに対応付けて記憶する在庫記憶部(記憶部10)として機能している。
【0028】
発注出荷管理テーブルは、小売業者からの発注情報および出荷情報が登録されるテーブルであり、発注IDフィールド、発注日フィールド、発注者フィールド、JANコードフィールド、発注数量フィールド、納品日フィールド、判定基準日フィールド、賞味期限フィールド、出荷日フィールド、出荷数量フィールド、及び出荷IDフィールドを備えている。発注IDフィールドは、発注された食品の種類ごとに付与される識別情報(発注ID)が登録されるフィールドである。発注日フィールドは、発注を受領した日付が登録されるフィールドである。発注者フィールドは、発注した小売業者の小売IDが登録されるフィールドである。JANコードフィールドは、発注された食品のJANコードが登録されるフィールドである。発注数量フィールドは、食品の発注数量が登録されるフィールドである。納品日フィールドは、小売店に対して食品を納品すべき納品日が登録されるフィールドである。判定基準日フィールドは、出荷の可否を判定する判定基準日が登録されるフィールドであり、当該判定基準は、賞味日数、小売ルール、及び納品日に基づいて算出され、登録される。例えば、○○商店では、小売ルールが2/3と定められているので、○○商店に対して○○チョコを出荷する際には、賞味日数180日に2/3を乗じて求められた120日を、当該○○チョコの納品日に加えた日付が判定基準日となる。賞味期限フィールドは、食品の賞味期限が登録されるフィールドであって、出荷時にピッキングされた際に読み取られた当該食品の賞味期限が登録される。出荷日フィールドは、当該食品が小売店に向けて出荷された日が登録されるフィールドである。出荷数量フィールドは、食品の出荷数量が登録されるフィールドである。出荷IDは、食品が出荷される度に当該食品に付与されるIDである。また、発注出荷管理テーブルは、食品の単価が登録される単価フィールドや、当該単価に発注数量を乗じた金額が登録される金額フィールドを含んでも構わない。当該発注出荷管理テーブルは、発注された食品の種類毎にレコードが追加される。すなわち、一度の発注(発注書)において、複数の食品が発注された場合には、発注された食品の種類に応じてレコードが生成されることとなる。そして、追加されたレコードの各フィールドに対して、発注書に記載された所定の情報が登録され、当該情報に基づきピッキングされて出荷された食品の情報が登録される。このようにデータベース134は、発注情報や出荷情報を記憶する発注出荷情報記憶部(記憶部10)として機能している。
【0029】
賞味日数テーブルは、各食品の賞味日数が登録されるテーブルであって、食品IDフィールドと、賞味日数フィールドと、を含む。食品IDフィールドには、食品IDが登録される。賞味日数フィールドには、当該食品について定められた賞味日数が登録される。当該賞味日数は、食品の製造日から賞味期限までの日数であり、メーカーによって各食品毎に定められる。
【0030】
前回出荷賞味期限管理テーブルは、前回に出荷された食品の賞味期限を小売店別に記憶するテーブルであり、出荷先IDフィールド、前回賞味期限フィールド、JANコードフィールドを備えている。出荷先IDフィールドは、食品の出荷先である小売店の小売IDが登録される。前回賞味期限フィールドには、当該小売店に対して出荷した商品の賞味期限が登録される。JANコードは、当該小売店に対して出荷された商品のJANコードが登録される。当該前回出荷賞味期限管理テーブルは、出荷先とJANコードの組み合わせの数だけレコードが設けられている。
【0031】
上記のように構成される本実施形態の判定システム100は、
図1に示す、入荷登録処理(s10)、ピッキング情報生成処理(s20)、読取処理(s30)、判定処理(s40)、及び出荷登録処理(s50)を実行する。以下、各処理を具体的に説明する。
【0032】
入荷登録処理(s10)は、入荷された食品に関する情報(以下、「入荷情報」という。)をデータベース134に登録する処理であって、入荷情報生成処理、送受信処理、登録処理がこの順に実行される。
(1)入荷情報生成処理は、入荷情報を生成する処理である。当該入荷情報は、入荷された食品の食品ID及び/又はJANコードと、入荷数量と、を含む情報であり、入荷業務を行うスタッフがコンピュータ110を操作する(スタッフがこれらの情報を入力する)ことによって生成される。
(2)送受信処理は、上記コンピュータ110が入荷情報をサーバ130に送信し、サーバ130が入荷情報を受信する処理である。
(3)登録処理は、入荷情報を在庫管理テーブルに登録する処理である。具体的には、サーバ130のCPU132は、在庫管理テーブルにおいて、受信した入荷情報に含まれる食品ID又はJANコードに対応するレコードを特定し、特定したレコードに含まれる在庫数に対して受信した入荷数量を加算して登録する。
【0033】
ピッキング情報生成処理(s20)は、小売業者からの発注に基づいてピッキング情報を生成する処理である。当該ピッキング情報生成処理は、発注登録処理、抽出処理、及び印刷処理を含む。
(1)発注登録処理は、発注書に記載されている情報を含む発注情報を登録する処理である。発注情報は、受注用端末であるコンピュータ110とサーバ130によって生成される。
(1-1)具体的には、受付スタッフが、発注書に記載された発信者名(小売業者名)、発注日時、食品名、発注数量、及び納品日などの発注情報をコンピュータ110に入力し、当該コンピュータ110は、発注情報をサーバ130へと送信する。
(1-2)サーバ130のCPU132は、受信した発注情報に基づいて、発信者名に対応する小売IDを小売マスタから検索し、食品名に対応するJANコードを食品マスタから検索する。
(1-3)サーバ130のCPU132は、発注出荷管理テーブルにレコードを追加する。そして、サーバ130のCPU132は、追加されたレコードに対して、発注IDを登録し、発注情報に含まれる発注日を発注日フィールドに登録し、検索された小売IDを発注者フィールドに登録し、検索されたJANコードをJANコードフィールドに登録し、発注情報に含まれる発注数量を発注数量フィールドに登録する。また、サーバ130のCPU132は、発注情報に含まれる納品日を納品日フィールドに登録する。さらに、サーバ130のCPU132は、判定基準日を判定基準日フィールドに登録する。当該判定基準日の算出は、先ず、上記小売IDに対応する小売ルールを小売マスタから抽出し、上記JANコードに対応する賞味日数を賞味日数テーブルから抽出する。次に、抽出した賞味日数に対して小売ルールを乗じて求めた日数を上記納品日に加算することにより判定基準日が求められる。
上記コンピュータ110およびサーバ130は、発注書に記載された食品の種類ごとに上記処理を実行することで、発注された食品の各々の発注情報が発注出荷管理テーブルに登録される。なお、1通の発注書に複数の食品が含まれる場合には、当該食品毎にレコードが追加されることとなるが、各レコードに対して共通の発注IDが登録される。
(2)抽出処理は、発注出荷管理テーブルからピッキングすべき食品の情報を抽出する処理であって、サーバ130によって実行される。具体的には、サーバ130のCPU132は、発注出荷管理テーブルにおいて、発注ID単位でレコードを特定し、特定されたレコードの発注者フィールドに登録されている小売IDを特定する。そして、サーバ130は、特定した小売IDに対応する小売名称を小売マスタから抽出する。また、特定されたレコードのJANコードを検索キーとして食品マスタから食品名を抽出する。なお、特定されたレコードが複数存在する場合には、複数のレコードについて上記抽出処理を実行する。
(3)印刷処理は、ピッキングすべき食品の内容が記載された書類を印刷する処理であって、サーバ130のCPU132は、ピッキングリスト生成処理、バーコード生成処理、及び印刷情報生成処理を実行する。
(3-1)ピッキングリスト生成処理は、ピッキングすべき食品のリストを生成する処理であって、上記抽出された小売名称および食品名、並びに特定されたJANコードを含むピッキングリストを生成する。
(3-2)バーコード生成処理は、上記抽出処理において特定された発注IDを符号化したバーコードを生成する処理である。
(3-3)印刷情報生成処理は、上記ピッキングリスト及びバーコードを含む印刷情報を生成する処理である。そして、サーバ130は、生成した印刷情報をコンピュータ110に送信する。
(3-4)コンピュータ110は、受信した印刷情報をプリンター(不図示)に送信する。これにより印刷情報(ピッキングリストおよびバーコード)が印刷された印刷物が出力される。
【0034】
読取処理(s30)は、ピッキング対象の食品(以下、「対象食品」という。)に表記されたシンボルであるバーコードおよび賞味期限を読み取る処理であって、リスト表示処理、JANコード読取処理、及び賞味期限読取処理を含む。
(1)リスト表示処理は、ピッキングリストを読取装置120のタッチパネルディスプレイ122に表示させる処理であって、読取装置120とサーバ130によって実行される。具体的には、読取装置120のCPU124は、カメラ123を制御して上記印刷物に印刷されたバーコードを撮像し、生成された画像を解析して当該バーコードに対応する発注IDを取得する。そして、読取装置120は、取得した発注IDをサーバ130へと送信する。サーバ130のCPUは、受信した発注IDに対応するレコードを発注出荷管理テーブルから抽出し、当該レコード中のJANコードに対応する食品名を食品マスタから取得する。また、サーバ130のCPUは、抽出したレコード(発注日、発注者、JANコード、数量)及び食品名を読取装置120へと送信する。読取装置120のCPU124は、受信した情報をタッチパネルディスプレイ122に表示させる。これによりピッキングすべき食品のリストがピッキングスタッフに対して提示される。
(2)JANコード読取処理は、対象食品に表記されたバーコードからJANコードを読み取る処理である。具体的には、読取装置120のCPU124は、カメラ123を制御して、対象食品に表記されたバーコードを所定のフレームレートで撮像させ、カメラ123によって生成されたフレーム画像を取得する。そして、読取装置120のCPU123は、取得したフレーム画像に対して公知のバーコード解析処理を実行し、当該フレーム画像に含まれるバーコードからJANコードを取得する。このように読取装置120のCPU124は、食品に表記されたバーコードを解析するバーコード解析部30として機能する。
(3)賞味期限読取処理(s300)(
図6)は、対象食品に表記された賞味期限を読み取る処理であって、読取装置120のCPU124は、カメラ123を制御して対象食品に表記された賞味期限を所定のフレームレートで撮像させて、カメラ123によって生成されたフレーム画像を解析して賞味期限を取得する。このように読取装置120のCPU124は、食品に表記された賞味期限(日付)を解析する日付解析部40として機能する。
【0035】
判定処理(s40)は、対象食品の出荷の可否を判定する処理であって、上記読取処理(s30)で取得した賞味期限に基づいて出荷の可否が判定される。当該判定の結果、出荷ができないと判定された場合には、その判断理由が読取装置120のタッチパネルディスプレイ122に表示される。一方、判定の結果、対象食品の出荷が認められた場合には、当該対象食品が出荷エリアへと運ばれて、出荷されることとなる。このように、読取装置120のCPU124は、賞味期限に基づいて出荷の可否を判定する判定部50として機能する。
【0036】
出荷登録処理(s50)は、出荷された食品の情報をデータベース134に登録する処理であって、上記読取装置120とサーバ130によって、登録情報の送受信処理、及び登録処理を含む。
(1)登録情報の送受信処理は、読取装置120がサーバ130に対して登録情報を送信し、当該登録情報をサーバ130が受信する処理である。登録情報は、上記の読取処理(s30)において取得されたJANコード、賞味期限、及び出荷個数並びに発注IDである。
(2)サーバ130のCPU132は、登録情報を受信すると、受信した登録情報を発注出荷管理テーブルへと登録する。また、サーバ130のCPU132は、受信した登録情報に含まれる出荷個数を、在庫管理テーブルの在庫数量から減じて在庫数量を更新する。また、サーバ130のCPU132は、読取処理(s30)において取得したJANコードに対応する前回賞味基点フィールドに、上記賞味期限を登録する。
【0037】
ここで、上記の読取処理(s30)における賞味期限読取処理に関して、本実施形態では、食品に表記されている賞味期限の表記フォーマットに基づいて賞味期限を特定している。以下、具体的に説明する。
【0038】
賞味期限の表記フォーマットに関して、
図5に示すように、データベース134にはフォーマットマスタが設けられている。フォーマットマスタは、食品IDに対応付けて、当該食品に採用されている賞味期限の表記フォーマットを記憶するテーブルであり、食品IDフィールドと、表記フォーマットフィールドと、を含む。例えば、「2022/12/15」のように賞味期限が表記されている食品は、「yyyy/mm/dd」型として登録される。また、「22/12/15」のように賞味期限が表記されている食品は、「yy/mm/dd」型として登録される。また、「221215」のように賞味期限が表記されている食品は「yymmdd」型として登録される。また、賞味日数が3ヶ月を超える食品については日の表記を省略することができる。よって、「2022/12」のように賞味期限が表記されている食品は、「yyyy/mm」型として登録される。また、「22/12」のように賞味期限が表記されている食品は「yy/mm」型として登録される。また、「2212」のように賞味期限が表記されている食品は「yymm」型として登録される。
【0039】
そして、本実施形態では、食品に表記されたバーコードからJANコードを取得し、当該JANコードに基づいて表記フォーマットを特定し、特定された表記フォーマットに基づいて賞味期限を特定することとしている。以下、賞味期限読取処理のフローを、
図6を参照しながら説明する。
【0040】
賞味期限読取処理(s300)が開始されると、読取装置120のCPUは、撮像処理(s301)、フォーマット取得処理(s302)、及び解析処理(s303)を実行する。撮像処理(s301)は、食品に表記された賞味期限を撮像する処理であって、CPU124は、カメラ123を制御して所定のフレームレートで賞味期限の表記部分を撮像し、カメラ123によって生成されたフレーム画像を取得する。なお、上記JANコード取得処理において取得した画像に賞味期限が含まれる場合には、当該撮像処理(s301)を省略しても構わない。
【0041】
フォーマット取得処理(s302)は、サーバ130から表記フォーマットを取得する処理であって、読取装置120のCPU124は、上記JANコード取得処理において取得したJANコードに対応する食品IDを食品マスタから抽出し、当該食品IDを付随させて、サーバ130に対して表記フォーマットの送信をリクエストする。サーバ130のCPU132は、当該リクエストを受信すると、受信した食品IDに対応する表記フォーマットをフォーマットマスタから抽出し、抽出した表記フォーマットを含むレスポンスを送信する。読取装置120のCPU124は、レスポンスを受信することで表記フォーマットを取得する。このように、読取装置120のCPU124は表記フォーマットを取得するフォーマット取得部として機能している。
【0042】
解析処理(s303)は、上記撮像処理(s301)において取得したフレーム画像を解析して、賞味期限を取得する処理である。当該解析処理(s303)では、例えば、事前に実施された学習処理により生成された学習済みモデルに対して、上記取得したフレーム画像を入力する推論処理を実行して賞味期限が取得される。
(1)当該学習処理では、複数の学習データセットが準備され学習処理が実行される。当該学習データセットは、入力データセットと、正解データと、を含む。入力データセットは、学習用画像と、当該学習用画像に対応する表記フォーマットと、を含む。当該学習用画像は、学習処理のために準備された画像であり、食品における賞味期限の表記部分を撮像して生成された画像である。表記フォーマットは、学習用画像に含まれている賞味期限の表記フォーマットである。正解データは、学習用画像に対応する(学習用画像に含まれる)賞味期限のテキストデータである。このように構成される学習データセットが、賞味期限の様々な表記態様ついて準備される。そして、多数の学習データセットに基づいて学習処理が実行され、学習済みモデルが生成される。
(2)推論処理では、撮像処理(s301)において取得したフレーム画像と、上記フォーマット取得処理(s302)において取得した表記フォーマットと、を推論用データセットとして、学習済みモデルに入力する。学習済みモデルは、当該フレーム画像およびフォーマットコードに基づいて賞味期限のテキストデータを出力する。
このようにして解析処理(s303)において賞味期限が特定され、読取装置120のCPU124は、学習済みモデルを生成する学習部41、及びフレーム画像と表記フォーマットを学習済みモデルに入力し賞味期限を特定する推論部42として機能している。
【0043】
このように本実施形態では、食品に対応付けて登録されている表記フォーマットに基づいて、解析処理を実施することができるので、従来の解析処理よりも精度の高い賞味期限の認識を実現することができる。
【0044】
次に、本実施形態における判定処理(s40)では、複数の判定基準を設けており、全ての判定基準を満たした場合に、当該食品の出荷が認められる。
図7に示すように、判定処理(s40)は、賞味期限判定処理(s410)、第1ルール判定処理(s420)、第2ルール判定処理(s430)、及び読取エラー判定処理(s440)を含む。なお、これらの判定処理の順番は
図7に示す態様に限られず、適宜変更可能である。
【0045】
賞味期限判定処理(s410)は、対象食品の賞味期限を判定する処理であって、現在日付取得処理(s411)と、比較処理(s412)と、を含む。現在日付取得処理(s411)は、読取装置120のCPU124が、現在の(当該処理を実行している時の)日付(以下、「現在日付」という。)を取得する処理である。比較処理(s412)は、上記読取処理(s30)において取得した賞味期限と現在日付を比較する処理である。当該比較処理(s412)の結果、現在日付が賞味期限を超過している場合(Yes)には、期限エラー表示処理(s413)が実行される。期限エラー表示処理(s413)は、読取装置120のタッチパネルディスプレイ122に、賞味期限を超過している旨の情報を表示させる処理である。一方、比較処理(s412)の結果、現在日付が賞味期限を超過していない場合(No)には、第1ルール判定処理(s420)が実行される。
【0046】
第1ルール判定処理(s420)は、小売業者に対して前回よりも新しい食品を出荷するというルール(第1ルール)を判定する処理であって、出荷情報取得処理(s421)と、比較処理(s422)と、を含む。出荷情報取得処理(s421)は、前回の出荷情報を取得する処理であって、読取装置120のCPU124は、サーバ130に対して、出荷情報のリクエストを送信する。当該リクエストには、上記リスト表示処理において取得した発注者のID(小売ID)と、上記JANコード取得処理により取得したJANコードと、が含まれる。サーバ130のCPU132は、読取装置120からリクエストを受信し、受信したリクエストに含まれる小売IDおよびJANコードを検索キーとして、前回出荷賞味期限管理テーブルから前回賞味期限を抽出する。そして、サーバ130のCPU132は、抽出した前回賞味期限を読取装置120にレスポンスする。読取装置120のCPU124は、サーバ130から前回賞味期限を受信すると、比較処理(s422)を実行する。
比較処理(s422)は、サーバ130から受信した前回賞味期限と、上記読取処理(s30)において取得した賞味期限(今回出荷する食品の賞味期限)とを比較する処理である。当該比較処理の結果、前回賞味期限の方が新しい(未来である)場合(no)には、第1ルールを満たさないので、第1ルールエラーの表示処理(s423)が実行される。当該第1ルールエラーの表示処理(s423)は、読取装置120のタッチパネルディスプレイ122に、第1ルールを満たしていない旨の情報を表示させる処理である。一方、比較処理(s422)の結果、今回出荷する食品の賞味期限のほうが前回賞味期限よりも、新しい(未来である)場合には、第2ルール判定処理(s430)が実行される。
【0047】
第2ルール判定処理(s430)は、小売業者毎に定められた出荷ルール(第2ルール)に基づいて出荷の適否を判定する処理であって、取得処理(s431)、及び比較処理(s433)を含む。
(1)取得処理(s431)では、判定基準日が取得される。読取装置120のCPU124は、サーバ130に対して、リクエストを送信する。当該リクエストには、上記JANコード取得処理により取得したJANコードおよび発注IDが含まれる。サーバ130のCPU132は、当該リクエストを受信し、リクエストに含まれるJANコード及び発注IDを検索キーとして、発注出荷管理テーブルから判定基準日を抽出する。そして、サーバ130のCPU132は抽出した判定基準日を読取装置120に対してレスポンスする。読取装置120のCPU124は当該レスポンスを受信し、比較処理(s433)を実行する。
(2)比較処理(s433)は、上記賞味期限読取処理(s300)において取得した賞味期限と判定基準日を比較する処理である。当該比較処理(s433)の結果、賞味期限が判定基準日よりも新しい(未来である)場合には(Yes)、第2ルールを満たす(納品日から賞味期限までの期間が小売の基準を満たす)ので、読取エラー判定処理に移行する。一方、賞味期限が判定基準日よりも古い(過去である)場合には(No)、第2ルールを満たさない(納品日から賞味期限までの期間が小売の基準を満たさない)ので、第2ルールエラーの表示処理(s434)が実行される。第2ルールエラーの表示処理(s434)は、読取装置120のタッチパネルディスプレイ122に、第2ルールを満たしていない旨の情報を表示させる処理である。
【0048】
読取エラー判定処理(s440)は、上記読取処理(s30)おいて取得した賞味期限の適正を判断する処理であって、算出処理(s441)と、比較処理(s442)と、を含む。
算出処理(s441)は、賞味日数に基づいて賞味期限の上限日を算出する処理であって、賞味日数に30日を加えた日数を本日日付に加えることで、賞味期限の上限値が求められる。賞味期限の下限日は本日日付である。なお、当該賞味日数は上記JANコード取得処理によって取得したJANコードに対応する食品IDを食品マスタから抽出し、抽出した食品IDに対応する賞味日数を賞味日数テーブルから抽出する。
比較処理(s442)は、取得された賞味期限と上限日を比較し、当該賞味期限と下限日を比較する。その結果、賞味期限が下限日と上限日の間にある場合には、読み取った賞味期限は適切と判定し、下限日と上限日の間に賞味期限がない場合には不適切な賞味期限であると判定する。このように賞味期限が不適切と判断された場合には(no)、読取エラー表示が実行される。
当該読取エラー表示は、読取処理において読み取られた賞味期限が適正ではない旨の情報を読取装置120のタッチパネルディスプレイ122に表示させる処理である。
一方、読み取った賞味期限が適切と判定された場合には、出荷可能表示処理(s450)に移行する。
【0049】
出荷可能表示処理(s450)は、読取装置120のタッチパネルディスプレイ122に、対象食品の出荷が可能である旨を表示する処理である。このように出荷可能表示処理が実行された上で、上記登録処理が実行されることとなる。
【0050】
このように本実施形態では、多面的に出荷の可否を判定するので、判定精度を向上させることができる。
【0051】
本発明の実施形態を説明したが、本発明は上記実施形態に変更や改良を加えたものであっても構わない。
【0052】
[変形例1]
解析処理(s303)は、上記実施形態の処理に限られず、例えば、レイアウト解析処理、機械学習を用いた抽出処理、及び機械学習を用いた文字認識処理を含むものであっても構わない。なお、レイアウト解析処理を実行する前に画像の傾きや歪を補正する補正処理を実行しても構わない。
(1)レイアウト解析処理は、上記撮像処理(s301)において取得した画像を解析して文字列のブロックを検出する処理であって、公知のOCR処理に用いられる処理である。当該レイアウト解析処理によって、画像内に含まれる賞味期限の表記ブロックや、その他の表記部分に関する表記ブロックなどが検出される。
(2)機械学習を用いた抽出処理は、上記レイアウト解析処理において検出された表記ブロックに対応する表記フォーマットを機械学習により取得し、当該表記フォーマットと上記フォーマット取得処理(s302)において取得した表記フォーマットと比較することで、上記検出された一または複数の表記ブロックの中から賞味期限を含む表記ブロックを特定し、抽出する処理である。当該機械学習では、教師ありの学習処理が予め実行されて学習済みモデルが生成されている。
(2-1)当該学習処理では、複数の学習データセットが準備される。当該学習データセットは、入力データである学習用ブロック画像と、正解データである表記フォーマットと、を含む。学習用ブロック画像(入力データ)は、当該学習処理のために準備された画像であり、食品における賞味期限の表記部分を撮像して生成された画像から、当該表記部分のみを切り出した画像である。表記フォーマット(正解データ)は、当該学習用ブロック画像における賞味期限の表記フォーマットである。このように構成される学習データセットが、様々な食品の様々な賞味期限表記について準備され、準備された多数の学習データセットに基づいて学習処理が実行され、学習済みモデルが生成される。
(2-2)そして、上記学習済みモデルを用いて推論処理が実行される。推論処理では、上記レイアウト解析処理において検出された表記ブロックの各々が学習済みモデルに入力され、当該表記ブロックに対応する表記フォーマットが出力される。なお、その他の表記部分に関する表記ブロックが学習済みモデルに入力された場合には、対応する表記フォーマットが存在しない旨の情報が出力される。
そして、上記フォーマット取得処理(s302)において取得した表記フォーマットと、上記推論処理の結果として取得した表記フォーマットとを比較し、表記フォーマットが一致した場合には、当該推論処理において入力データとして用いられた表記ブロックが抽出される。
(3)機械学習を用いた文字認識処理は、上記抽出された表記ブロックに含まれる文字列(賞味期限)を機械学習により取得する処理である。当該機械学習では、教師ありの学習処理が予め実行されて学習済みモデルが生成されている。
(3-1)当該学習処理では、複数の学習データセットが準備される。当該学習データセットは、入力データセットと、正解データと、を含む。入力データセットは、学習用賞味期限画像と、当該学習用賞味期限画像に対応する表記フォーマットと、を含む。学習用賞味期限画像は、学習処理のために準備された画像であり、様々な食品における賞味期限の表記部分が切り出された画像である。また、表記フォーマットは、学習用賞味期限画像に含まれる賞味期限表記の表記フォーマットである。正解データは、当該学習用賞味期限画像に対応する(学習用賞味期限画像に含まれる)賞味期限のテキストデータである。このように構成される学習データセットが、様々な食品において表記された賞味期限について準備され、学習処理が実行されることで学習済みモデルが生成される。
(3-2)推論処理では、上記抽出処理において抽出された表記ブロックと、上記フォーマット取得処理(s302)において取得した表記フォーマットと、が推論用データセットとして、学習済みモデルに入力される。学習済みモデルは、当該推論用データセット基づいて賞味期限のテキストデータを出力する。
このようにして解析処理(s303)において賞味期限を特定しても構わない。
【0053】
[変形例2]
上記実施形態の解析処理における文字認識処理では、機械学習を用いて賞味期限を特定しているが、当該態様に限定されず、例えば、切り出された文字画像から特徴量を抽出し、抽出した特徴量を、予め準備された標準パターンと照合するマッチング処理を行うことで、文字画像に対応する文字(数字)を特定しても構わない。
【0054】
[変形例3]
上記実施形態において、フォーマットマスタの表記フォーマットの初期値は、当該食品のメーカーにおいて利用頻度の高い表記フォーマットに設定されても構わない。すなわち、サーバ130のCPU132は、フォーマットマスタに新規レコードを追加する際に、新規レコードの食品IDに所定の食品IDを登録するとともに、当該食品IDに対応する標準フォーマットをデフォルトフォーマットテーブルから抽出し、抽出した表記フォーマットを当該新規レコードの表記フォーマットフィールドに登録しても構わない。
【0055】
[変形例4]
上記実施形態において、フォーマットマスタの表記フォーマットは、変更可能であっても構わない。当該表記フォーマットの変更は、例えば、読取装置120とサーバ130とにより実行される。具体的には、フォーマット取得処理において取得した表記フォーマットと、対象食品の賞味期限の表記フォーマットが異なる場合、読取装置120のCPU124は、表記フォーマットを選択させる選択画面をタッチパネルディスプレイ122に表示させ、表示された選択画面において指定された表記フォーマットをサーバ130に送信する。サーバ130は、読取装置120から表記フォーマットを受信すると、受信した表記フォーマットを該当するレコードの表記フォータットに登録する。
【0056】
[変形例5]
上記実施形態では発注出荷管理テーブルに判定基準日を登録しているが、当該態様に限られず、第2ルール判定処理(s430)において、取得処理に代えて、判定基準算出処理を実行しても構わない。具体的には、判定基準算出処理では、読取装置120は、賞味日数、納品日、及び小売ルールを取得し、賞味日数に対して小売ルールを乗じて求めた日数を納品日に加算することにより判定基準日が求められる。なお、賞味日数は、リスト表示処理において取得したJANコードに対応する食品IDを食品マスタにて特定し、特定した食品IDに対応する賞味日数を賞味日数テーブルから取得することができる。また、納品日はリスト表示処理において取得した発注IDおよびJANコードの両方に対応する納品日を発注出荷管理テーブルから取得することができる。小売ルールは、リスト表示処理において取得した発注者に対応する小売ルールを小売マスタから取得することができる。
(1)取得処理(s431)では、判定基準日が取得される。読取装置120のCPU124は、サーバ130に対して、リクエストを送信する。当該リクエストには、上記JANコード取得処理により取得したJANコードが含まれる。サーバ130のCPU132は、当該リクエストを受信し、リクエストに含まれるJANコードを検索キーとして、発注出荷管理テーブルから判定基準日を抽出する。そして、サーバ130のCPU132は抽出した判定基準日を読取装置120に対してレスポンスする。読取装置120のCPU124は当該レスポンスを受信し、比較処理(s433)を実行する。
【0057】
[変形例6]
上記実施形態に係る読取装置120は、卸業者の物流施設において用いられ、当該物流施設から小売業者に対して出荷される食品の賞味期限を読み取るものであった。また、上記実施形態に係る判定システム100は、当該読取装置120によって読み取られた賞味期限に基づいて、当該食品の出荷の可否を判定するものであった。しかし、上記実施形態に係る読取装置120は、物流施設や小売において、入荷された食品の賞味期限を読み取るものであっても構わない。また、判定システム100は、当該読取装置120によって読み取られた賞味期限に基づいて、当該食品の入荷の可否を判定するものであっても構わない。
【0058】
[変形例7]
読取装置120のCPUは、読取処理に先立って、サーバ130から食品マスタ、メーカーマスタ、小売マスタ、在庫管理テーブル、発注出荷管理テーブル、フォーマットマスタ、及び前回出荷賞味期限管理テーブルに登録された情報の全部または一部をダウンロードして、メモリに格納しても構わない。当該態様においては、読取装置120のCPUは、自己のメモリに格納された上記テーブルを参照しながら、読取処理及び判定処理を実行することができ、処理の高速化を図ることができる。また、当該態様においては、ピッキング対象の全ての食品について読取処理および判定処理を実行した後に、上記テーブルに関する情報をサーバ130にアップロードする。サーバ130のCPUは、アップロードされた情報と、データベース134に登録されている情報の差分を検出し、当該差分に関する情報を各テーブルに登録する。
【0059】
[変形例8]
上記実施形態では、食品の賞味期限を例にして説明したが、本発明の読取装置120の読取対象は食品に限定されず、薬、コンタクトレンズ、化粧品など使用期限が表記された商品であっても構わない。また、本発明の判定システム100も同様に、使用期限が表記された商品の出荷の可否を判定するシステムであっても構わない。
【符号の説明】
【0060】
100 判定システム
10 記憶部
20 撮像部
30 バーコード解析部(シンボル解析部)
40 日付解析部
41 学習部
42 推論部
50 判定部