Javaプログラムを特定する20品の料理の天井を書くために2時間の私の学校の成績。
1.2。Baiduのクラウドスマートプロフィール
1.2.1 Baiduの画像認識サービス
深い学習と大規模なイメージトレーニング、総合的な情報をもとにBaiduの画像認識サービスは、正確に画像のカテゴリ、場所にオブジェクトを識別し、その自信にします。
1.2.2認識料理
サポートは、1枚の画像を含む唯一の料理を認識するようになって料理の50,000種類を識別し、インターフェースは料理、自信、カロリー、Wikipediaの情報やその他の包括的な情報の名前を返します。複数の皿を含む画像を識別するための自己皿ギャラリーをサポートし、インターフェースは皿、場所、関連性および他の総合的な情報の名前を返します。
1.2.3認識アプリケーションシナリオ料理
絵、料理の画像識別名を取るためによると、料理は参照カロリーのコンテンツを取得し、Wikipediaの情報は、認識結果と組み合わせることができ、さらに、食事の勧告、このようなプログラム管理などの健康関連の機能を提供し、ユーザーエクスペリエンス、広く、食品および飲料やエンターテイメントの健康管理APPに使用を強化しますインチ 、写真を撮るピクチャー料理の名前と場所を特定し、決済の効率を改善し、手動入力コストを削減するためによると、広く外食産業におけるインテリジェント決済に使用します。
1.2.4はじめに認識インターフェース料理
インタフェース機能:特定の皿のための要求。すなわち、(正常に復号化し、適切なアスペクト比)画像入力の、料理の出力画像の名前、カロリー情報、自信のために。
要求フォーマット:POSTモードコールは(コンテンツタイプアプリケーション/ x-www-form-urlencodedであり、その後、要求ボディでurlencodeフォーマットを介して)
返されたフォーマット:JSONフォーマット
リクエスト画像の対象base64エンコード:要求制限BASE64符号化された画像が、文字列にピクチャ符号化データ列を参照して、文字列ではなく、画像のアドレスを使用します。まず、あなたは、バイナリイメージを取得し、その後のBase64エンコード形式が可能使用することができます。画像/ JPG、BASE64)、要求フォーマットのサポート:(Base64でエンコードされた画像は、(データのように、ピクチャヘッダに含まれていない場合、サイズは4M、最小の側をbase64エンコードを超えないPNG、JPG、JPEG、BMP、GIF **少なくとも15ピクセル、最長辺の最大4096px、3のアスペクト比:1以下)
1.2.5リクエストインターフェイスパラメータ説明
パラメータ |
必要とされます |
タイプ |
値の範囲 |
説明 |
画像 |
それはあります |
弦 |
- |
Base64でエンコードされた文字列、画像ファイル形式への必須要求。(サポートされている画像フォーマット:JPG、BMP、PNG、JPEG )、 画像サイズ4M超えません。最短の辺の少なくとも15ピクセル、最長辺の最大4096px。注:画像は、必要にBASE64 符号化され、頭部を除去した後、符号化実行でurlencodeを。 |
top_num |
ノー |
unit32 |
- |
戻り結果上位n、デフォルト5。 |
filter_threshold |
それはあります |
浮く |
- |
0.95デフォルトは、このパラメータの影響を識別するために調整することができ、認識率は、非食品を減少させました。 |
baike_num |
ノー |
整数 |
0 |
結果の数が百科事典の情報を返され、デフォルトでは戻りません。 |
1.2.6インタフェースパラメータ説明戻り値
フィールド |
必要とされます |
タイプ |
説明 |
LOG_ID |
それはあります |
UINT64 |
問題を特定するために使用される唯一のログID、 |
result_num |
ノー |
unit32 |
要素の数を返す結果の数、及び結果の配列に |
結果 |
ノー |
アレイ() |
料理認識結果の配列 |
+名前 |
ノー |
弦 |
料理、例:魚風味の豚肉 |
+カロリー |
ノー |
浮く |
カロリー、100グラムあたりのカロリー |
+確率 |
ノー |
浮く |
各列の認識結果の信頼値、0-1 |
+ Baike_info |
オブジェクト |
ノー |
認識結果Wikipediaのエントリ名に対応します |
++ baike_url |
弦 |
ノー |
Baiduの百科事典ページのリンクの認識結果に対応します |
++ IMAGE_URL |
弦 |
ノー |
対応する認識は、百科事典の画像リンクを結果 |
++説明 |
弦 |
ノー |
認識結果百科事典の記述に対応 |
分析を必要とします
プログラムに2.1はじめ
2.1.1プログラムの種類
このプログラムは、インタフェース料理を識別するためのインテリジェントな画像認識ソフトウェアのJavaコールBaiduのクラウドプラットフォームで書かれています。
2.1.2プログラムの使用
1.画像認識のメニューバーをクリックし、メインページにプログラムを実行します。
図メインプログラム・インターフェース1-1
2.メニューバーを展開
図メインインターフェイスのメニューバー1-2
3.料理画像識別
4.データベース内のデータを表示するための識別履歴メニューバーをクリックしてください
図1-7レコードの表示
2.2要件分析
2.2.1プログラムストリーム図。
図1のデータストリーム2-1(1)画像認識機能。
データ・フロー・グラフの図2-1画像認識機能
(2)プログラムの動作2-2フローチャートです。
図の図2-2のプログラム動作の流れのフローチャートに従って。
2.2.2プログラムの機能要件
(1)画像認識
识别出用户提供的图片的菜名、卡路里、置信度、百科信息描述。
(2)历史纪录查询
显示识别过图像相关信息的历史纪录。
(3)数据库菜品信息检索
输入菜名查询出所查菜的相关信息。
3 程序设计
3.1 总体设计
程序分为3个大模块,分别是图像识别模块,历史纪录查询模块,数据库菜品信息检索,下图3-1是菜品识别程序的程序与模块的关系:
图3-1 菜品识别程序结构图
3.2 图像识别模块设计
设定返回菜品数据为两条,选择第一条的菜名、卡路里、置信度、百科信息和第二条的菜名。
左边4行2列的网格布局用来显示四条文本信息,右边的画布用来显示加载后的图像和百科信息。最底下为1行4列的网格布局,显示、退出按钮和拖拽提示标签和实现接受拖拽图片后显示图片路径的文本框。
点击显示会调用文件选择器。通过点击显示或者直接拖拽图片到文本框都可以通过获得图片的路径来获得图片的信息。
将图片信息通过图像识别接口用POST方式上传到百度智能云平台的图像识别服务得到JSON格式的字符串。将JSON格式的字符串利用阿里的fastjson库转换字符串,获得想要格式的信息存到控件中。
3.3 历史纪录模块设计
历史纪录模块界面的主容器采用3行1列的网格布局,第一行显示历史纪录标签,第二行用JtextArea控件来存放从数据库获取的指定列的信息,第三行添加显示和退出按钮。
3.4 数据库菜品信息检索模块
通过输入菜品名称对指定列在数据库中查询符和的行,并用JtextArea存放菜品的百科信息。
4 菜品识别程序实现
4.1 程序开发环境介绍
本程序使用的是Eclipse201906版本开发,语言使用的是Java,JDK版本为11。在Windows10平台上完成开发与测试。
4.2 图像识别模块实现
5 软件测试
5.1 图像识别测试
5.1.1 文件选择测试
点击图像识别页面的显示调用文件选择器:
图5-1 文件选择测试
5.1.2 图像拖拽测试
拖拽图像进文本框加载图像,并在文本框显示图像路径信息:
图5-2 拖拽加载图片测试
5.1.3 图像识别结果测试
拖拽图片至文本框或者点击显示调用文件选择器加载图片,上传图片信息,将返回结果显示在空间中
图5-3 图像识别结果测试
5.2 历史纪录显示测试
点击显示从数据中获取菜品识别的历史纪录
图5-4 历史纪录显示测试
5.3数据库菜品信息查询测试
输入菜品名称,点击查询,返回菜品相关信息。
图5-5 数据库菜品信息查询测试
参考文献
[1] 慕课教育研发中心.Java从入门到项目实践[M].北京:清华大学出版社,2018.
[2] 百度工程师.百度智能云文档-菜品识别[EB/OL]
.https://cloud.baidu.com/doc/IMAGERECOGNITION/s/Ajwvy2g51/,2019-06-28.
[3]liuyz60.JAVA图形界面,怎么让背景图片正好充满JFrame?[EB/OL]
. https://zhidao.baidu.com/question/1925865716690279987.html,2017-11-27.
[4]蒋固金.JAVA拖拽选择文件[EB/OL]
. https://blog.csdn.net/jianggujin/article/details/50569827,2016-01-23.
[5]阿朱__.从本地读取json文件 用alibaba--fastjson解析 jar包[EB/OL]
. https://blog.csdn.net/qq_41371858/article/details/84940854,2018-12-10.
[6]紫霜落枫.Java如何做出好看的本地文件选择器[EB/OL]
. https://zhidao.baidu.com/question/425294497293157012.html,2017-12-16.
[7]披Zhe羊皮De狼.Java中改变应用程序界面外观[EB/OL]. https://blog.csdn.net/u010995220/article/details/49847307,2015-11-15.
资源链接:https://download.csdn.net/my/uploads/1/1(待审核后更新)