296_htmlとupload.phpを作る★

htmlとupload.phpを作る
(図1)

(図2)

まず
/var/www/html/photo_check_20170731
で仕事

1.サンプル195を参考に、upload.phpをコピー、修正

2.サンプル
http://153.126.154.106/php_emotion_20170728/20170728photo.html
をコピー、修正

http://153.126.154.106/photo_check_20170731/20170806_pho.html
として製造

# chmod 777 files
をしておく

3.上記2と1を連携して、ファイルがfilesにアップロードされるか?確認

なんとかOK!

4.API/AIとつなぐ。。

http://www.python-izm.com/contents/basis/command_line_arguments.shtml
を参考
(例:実行コマンド)
# python test_argv.py python izm com
を実行すると、
# -*- coding: utf-8 -*-
(例:コード)
import sys

args = sys.argv

print args
print u’第1引数:’ + args[1]
print u’第2引数:’ + args[2]
print u’第3引数:’ + args[3]

(例:解説)
5行目の「sys.argv」に起動時に設定した引数が格納されます。
リストで値が返されますが、最初の要素には実行ファイル名が入りますので注意しましょう。

・・・より

「20170731_photo_detect2.py」を作成し、
「20170731_photo_detect2.py ファイル名」
で実行し動くようにする。

###20170806,”20170731_photo_detect2.py+falename” making
#
import sys
args = sys.argv
#

を追加し、

(旧)body = “{‘url’:’http://153.126.154.106/photo_check_20170731/files/20110826oresama.JPG’}”
(新)body = “{‘url’:’http://153.126.154.106/photo_check_20170731/files/”+args[1]+”‘}”
として、
コマンド
「# python 20170731_photo_detect2.py 20110826oresama.JPG」
を実行してみる・・・>>OK!成功!!

では、つなげてみるか・・・・

http://153.126.154.106/photo_check_20170731/20170806_pho1.html

あれ?あっさりOK?
**********
結果
**********
20110826oresama.JPGをアップロードしました。
python ./20170731_photo_detect2.py 20110826oresama.JPG

neutralが含まれています。(20170806 19:35ここから)↓
“neutral”: 0.876,
neutralが含まれています。(20170806 19:35ここまで)↑
**********

ねんのため。もう一丁!
**********
結果
**********
1448158857484.jpgをアップロードしました。
python ./20170731_photo_detect2.py 1448158857484.jpg

neutralが含まれています。(20170806 19:35ここから)↓
“neutral”: 0.999,
neutralが含まれています。(20170806 19:35ここまで)↑
**********

http://153.126.154.106/photo_check_20170731/20170806_pho1.html

**********
結果
**********
20110826oresama.JPGをアップロードしました。
python ./20170731_photo_detect2.py 20110826oresama.JPG

(怒り) “anger”: 0.0,
(軽蔑、侮辱) “contempt”: 0.001,
(嫌悪) “disgust”: 0.0,
(恐怖) “fear”: 0.0,
(幸福、幸せ) “happiness”: 0.123,
(通常、中立) “neutral”: 0.876,
(悲観) “sadness”: 0.0,
(驚き) “surprise”: 0.0
**********

1448158857484.jpgをアップロードしました。
python ./20170731_photo_detect2.py 1448158857484.jpg

(怒り) “anger”: 0.0,
(軽蔑、侮辱) “contempt”: 0.0,
(嫌悪) “disgust”: 0.0,
(恐怖) “fear”: 0.0,
(幸福、幸せ) “happiness”: 0.0,
(通常、中立) “neutral”: 0.999,
(悲観) “sadness”: 0.0,
(驚き) “surprise”: 0.0

良い感じですね!!!!

(以上)

295_PHP から Python のプログラムを実行させる★

PHP から Python のプログラムを実行させる方法
http://freetech-e.com/html/callpython.htm
を参考
————————-
/var/www/html/php_emotion_20170728/
20170805_call_python.php
————————-
<?php
// file name: 20170805_call_python.php

$fullPath =
‘python ./20170730_emo.py’;

    exec($fullPath, $outpara);
    echo ‘<PRE>’;
    var_dump($fullPath);
    var_dump($outpara[0]);
    var_dump($outpara[1]);
    var_dump($outpara[2]);
    var_dump($outpara[3]);
    echo ‘<PRE>’;
?>
————————-
————————-
上記のWeb結果
————————-
string(24) “python ./20170730_emo.py”
string(263) “[{“faceRectangle”:{“height”:406,”left”:863,”top”:151,”width”:406},”scores”:{“anger”:9.52410346E-07,”contempt”:0.000829975063,”disgust”:7.344764E-07,”fear”:2.54277044E-10,”happiness”:0.1160154,”neutral”:0.8831446,”sadness”:7.53089944E-06,”surprise”:7.734229E-07}}]”
NULL
NULL
NULL
————————-
http://153.126.154.106/php_emotion_20170728/20170805_call_python.php
で、Web表示までOK。。。
ならあとは変数の受け渡しができれば、、、PHPとPython連携でAI・APIつくれるかな。。。
まあ、こっちも作ってみて、
————————-
/var/www/html/photo_check_20170731
20170805_call_py1.php
————————-
<?php
// file name: 20170805_call_python.php

$fullPath =
‘python ./20170731_photo_detect1.py’;

    exec($fullPath, $outpara);
    echo ‘<PRE>’;
    var_dump($fullPath);
    var_dump($outpara[0]);
    var_dump($outpara[1]);
    var_dump($outpara[2]);
    var_dump($outpara[3]);
var_dump($outpara[4]);
var_dump($outpara[5]);
var_dump($outpara[6]);
var_dump($outpara[7]);
    var_dump($outpara[8]);
var_dump($outpara[9]);
var_dump($outpara[10]);
    var_dump($outpara[11]);
    var_dump($outpara[12]);
    var_dump($outpara[13]);
    var_dump($outpara[14]);
    var_dump($outpara[15]);
    var_dump($outpara[16]);
    var_dump($outpara[17]);
    var_dump($outpara[18]);
    var_dump($outpara[19]);
    var_dump($outpara[20]);
echo ‘<PRE>’;
?>
http://153.126.154.106/photo_check_20170731/20170805_call_py1.php
OKだけど、、、表示数が多くて表示しきれなかった。。。。
https://westus.dev.cognitive.microsoft.com/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395239
をみると、似ているかチェックは、??
————————-
/var/www/html/photo_check_20170731
20170805_call_py2.php
————————-
http://153.126.154.106/photo_check_20170731/20170805_call_py2.php
————————-
<?php
// file name: 20170805_call_python.php
$fullPath =
      ‘python ./20170731_photo_detect1.py’;
    exec($fullPath, $outpara);
    echo ‘<PRE>’;
    echo $fullPath;
// is_array関数で配列かどうか判定する
if(is_array($outpara)) {
  // 配列だったらforeach関数でループ処理
  foreach ($outpara as $resout) {
    echo $resout;
    echo ‘<br>’;
  }
// 配列じゃなかったらエラーメッセージを表示
} else {
  echo ‘ありません。’;
}
?>
で、配列のすべての表示はできた。。。。
指定文字だけできるかな???
 if (strstr($resout, ‘neutral’)) {
    echo “neutralが含まれています。”.'<br>’;
    echo $resout;
    echo ‘<br>’;
 }
よし!取り出し成功!!!!!

294_Kariosを試す、、でも不完全

公式ページは、
https://www.kairos.com/
Try Photoで試しにやったら、
99%ASIANだって、、まあ当たってるけど。
(図1)
APIをGetしてみるか。。
まずはアカウント作成。
h1729708@yahoo.co.jp
Hiro
Yoshi
test
A****6
で。
App name:test’s App
Application ID:7********e20
Application Keys:ce3b******************83c81
だと。
developer documentationを見てみる。
サンプルコードがあるといいな。
https://www.kairos.com/docs/api/
イメージは、
“image”:”http://153.126.154.106/php_emotion_20170728/files/20110826oresama.JPG”,

{
“face_id”: “5410001743ab64935982”,
“images”: [
{
“attributes”: {
“lips”: “Together”,
“asian”: 0.25658,
“gender”: {
“type”: “F”
},
“age”: 26,
うーーーん、26歳は褒めすぎでは???
“image”:”http://153.126.154.106/photo_check_20170731/files/1448158857484.jpg”,
うーーーん、26歳は褒めすぎでは???これも。↑
“image”:”http://153.126.154.106/photo_check_20170731/files/IMG_15875604182662.jpeg”,
うーーーん、26歳は褒めすぎでは???これも。↑
なんかあてになるのかな・・・??
以上

293_Azure、Face API、顔検証をやってみる、、でも不完全

Azure、Face API、顔検証をやってみる
https://azure.microsoft.com/ja-jp/services/cognitive-services/face/
1.まず俺の写真3枚準備
2.では、まずWebそのまま利用で行きましょう。
(図1)

あれ、いきなり同一人物、、、だと。

3.では、データは良しとして、PHPでやってみるか。
https://westcentralus.dev.cognitive.microsoft.com/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395236
まずは、test_consoleで。
Keyは、取り直し
(図2)

(図3)
30日だけ利用可能なのね。。
保管場所は、
http://153.126.154.106/photo_check_20170731/files/

http://153.126.154.106/photo_check_20170731/files/IMG_15875604182662.jpeg
http://153.126.154.106/photo_check_20170731/files/1448158857484.jpg
http://153.126.154.106/photo_check_20170731/files/20110826oresama.JPG
(図4)

まあ、なんか出たけど(北京でのビール片手)。。。2枚の比較ではないなあ・・・

Pragma: no-cache
apim-request-id: e0dc48de-9307-4c7e-9265-b397fb1c56dc
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
Cache-Control: no-cache
Date: Mon, 31 Jul 2017 12:38:30 GMT
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Content-Length: 1329
Content-Type: application/json; charset=utf-8
Expires: -1
[
  {
    “faceId”: “6d53a149-8c7e-4653-bbb8-1d616e6e47f3”,
    “faceRectangle”: {
      “top”: 151,
      “left”: 863,
      “width”: 406,
      “height”: 406
    },
    “faceLandmarks”: {
      “pupilLeft”: {
        “x”: 980.8,
        “y”: 254.3
      },
      “pupilRight”: {
        “x”: 1154.7,
        “y”: 261.1
      },
      “noseTip”: {
        “x”: 1058.6,
        “y”: 370.2
      },
      “mouthLeft”: {
        “x”: 993.0,
        “y”: 452.8
      },
      “mouthRight”: {
        “x”: 1142.6,
        “y”: 455.2
      },
      “eyebrowLeftOuter”: {
        “x”: 920.5,
        “y”: 219.1
      },
      “eyebrowLeftInner”: {
        “x”: 1030.2,
        “y”: 216.0
      },
      “eyeLeftOuter”: {
        “x”: 953.8,
        “y”: 257.4
      },
      “eyeLeftTop”: {
        “x”: 979.6,
        “y”: 244.6
      },
      “eyeLeftBottom”: {
        “x”: 977.9,
        “y”: 266.2
      },
      “eyeLeftInner”: {
        “x”: 1002.6,
        “y”: 259.1
      },
      “eyebrowRightInner”: {
        “x”: 1089.5,
        “y”: 221.5
      },
      “eyebrowRightOuter”: {
        “x”: 1218.4,
        “y”: 224.0
      },
      “eyeRightInner”: {
        “x”: 1129.3,
        “y”: 265.1
      },
      “eyeRightTop”: {
        “x”: 1155.0,
        “y”: 250.2
      },
      “eyeRightBottom”: {
        “x”: 1154.4,
        “y”: 274.1
      },
      “eyeRightOuter”: {
        “x”: 1179.9,
        “y”: 264.2
      },
      “noseRootLeft”: {
        “x”: 1045.6,
        “y”: 267.7
      },
      “noseRootRight”: {
        “x”: 1085.5,
        “y”: 269.2
      },
      “noseLeftAlarTop”: {
        “x”: 1028.8,
        “y”: 334.3
      },
      “noseRightAlarTop”: {
        “x”: 1099.8,
        “y”: 336.9
      },
      “noseLeftAlarOutTip”: {
        “x”: 1005.2,
        “y”: 370.7
      },
      “noseRightAlarOutTip”: {
        “x”: 1123.9,
        “y”: 376.6
      },
      “upperLipTop”: {
        “x”: 1061.1,
        “y”: 435.9
      },
      “upperLipBottom”: {
        “x”: 1061.5,
        “y”: 451.6
      },
      “underLipTop”: {
        “x”: 1060.8,
        “y”: 458.3
      },
      “underLipBottom”: {
        “x”: 1060.2,
        “y”: 475.9
      }
    },
    “faceAttributes”: {
      “emotion”: {
        “anger”: 0.0,
        “contempt”: 0.001,
        “disgust”: 0.0,
        “fear”: 0.0,
        “happiness”: 0.123,
        “neutral”: 0.876,
        “sadness”: 0.0,
        “surprise”: 0.0
      }
    }
  }
]
Face List IDとやらが必要なので作れと。
https://westcentralus.dev.cognitive.microsoft.com/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f3039524b/console
これも一応結果出たけど・・
Pragma: no-cache
apim-request-id: f7a884b5-110d-4748-b603-2794c9a9d7d5
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
Cache-Control: no-cache
Date: Mon, 31 Jul 2017 12:47:03 GMT
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Content-Length: 0
Expires: -1
pythonでやってみるか、、、せっかくなんで。。。similarはサンプルコード無いみたいだな・・・残念。。
*********************************
ここからPython2.7 のコード
*********************************
import httplib, urllib, base64, json
###############################################
#### Update or verify the following values. ###
###############################################
# Replace the subscription_key string value with your valid subscription key.
subscription_key = ’13hc77781f7e4b19b5fcdd72a8df7156′
# Replace or verify the region.
#
# You must use the same region in your REST API call as you used to obtain your subscription keys.
# For example, if you obtained your subscription keys from the westus region, replace
# “westcentralus” in the URI below with “westus”.
#
# NOTE: Free trial subscription keys are generated in the westcentralus region, so if you are using
# a free trial subscription key, you should not need to change this region.
uri_base = ‘westcentralus.api.cognitive.microsoft.com’
# Request headers.
headers = {
‘Content-Type’: ‘application/json’,
‘Ocp-Apim-Subscription-Key’: 91723b068b294bb7b1e78d8ba36914b9,
}
# Request parameters.
params = urllib.urlencode({
‘returnFaceId’: ‘true’,
‘returnFaceLandmarks’: ‘false’,
‘returnFaceAttributes’: ‘age,gender,headPose,smile,facialHair,glasses,emotion,hair,makeup,occlusion,accessories,blur,exposure,noise’,
})
# The URL of a JPEG image to analyze.
body = “{‘url’:’http://153.126.154.106/photo_check_20170731/files/20110826oresama.JPG’}”
try:
# Execute the REST API call and get the response.
conn = httplib.HTTPSConnection(‘westcentralus.api.cognitive.microsoft.com’)
conn.request(“POST”, “/face/v1.0/detect?%s” % params, body, headers)
response = conn.getresponse()
data = response.read()
    # ‘data’ contains the JSON data. The following formats the JSON data for display.
parsed = json.loads(data)
print (“Response:”)
print (json.dumps(parsed, sort_keys=True, indent=2))
conn.close()
except Exception as e:
print(“[Errno {0}] {1}”.format(e.errno, e.strerror))
*********************************
ここまでPython2.7 のコード
*********************************

*********************************
ここからResponse結果
*********************************
Response:
[
{
“faceAttributes”: {
“accessories”: [],
“age”: 34.9,
“blur”: {
“blurLevel”: “high”,
“value”: 0.98
},
“emotion”: {
“anger”: 0.0,
“contempt”: 0.001,
“disgust”: 0.0,
“fear”: 0.0,
“happiness”: 0.123,
“neutral”: 0.876,
“sadness”: 0.0,
“surprise”: 0.0
},
“exposure”: {
“exposureLevel”: “goodExposure”,
“value”: 0.59
},
“facialHair”: {
“beard”: 0.4,
“moustache”: 0.1,
“sideburns”: 0.2
},
“gender”: “male”,
“glasses”: “NoGlasses”,
“hair”: {
“bald”: 0.02,
“hairColor”: [
{
“color”: “brown”,
“confidence”: 1.0
},
{
“color”: “black”,
“confidence”: 0.76
},
{
“color”: “gray”,
“confidence”: 0.29
},
{
“color”: “other”,
“confidence”: 0.18
},
{
“color”: “blond”,
“confidence”: 0.09
},
{
“color”: “red”,
“confidence”: 0.07
}
],
“invisible”: false
},
“headPose”: {
“pitch”: 0.0,
“roll”: 1.2,
“yaw”: -6.3
},
“makeup”: {
“eyeMakeup”: false,
“lipMakeup”: true
},
“noise”: {
“noiseLevel”: “medium”,
“value”: 0.61
},
“occlusion”: {
“eyeOccluded”: false,
“foreheadOccluded”: false,
“mouthOccluded”: false
},
“smile”: 0.123
},
“faceId”: “3509””3-608a-4165-be27-b9e9″”””””2f7″,
“faceRectangle”: {
“height”: 406,
“left”: 863,
“top”: 151,
“width”: 406
}
}*********************************
ここまで結果
*********************************
うーーーん、まあ同じ結果出たけど、、、ね。。。。。
***********************
Face API
***********************
写真に含まれる顔の検出、識別、分析、グループ化、タグ付け
30,000 トランザクション (1 分あたり 20 回)。
エンドポイント: https://westcentralus.api.cognitive.microsoft.com/face/v1.0
キー 1: 917*******************6914b9
キー 2: 192**********************2105ae
***********************
Emotion API
***********************
感情認識を使用してエクスペリエンスをパーソナライズする
30,000 トランザクション (1 分あたり 20 回)。
エンドポイント: https://westus.api.cognitive.microsoft.com/emotion/v1.0
キー 1: 2998″”””””””””””””””””””””””””””1866
キー 2: 229c””””””””””””””””””””””””””””3a093b

292_Microsoft Cognitive Servicesで人工知能を体験・でもまだNG

sakuravps2で再トライ。
sakuravpsで入ります。su -でルートにもなれるし。
まずは、作成したファイル群のコピーから。
FFFTPでdasudasu.sakura.ne.jpから、フォルダ毎Win10へコピー
その後、Filezillaでファイル群をuploadしてみる
おお!やりました!できました。
テストWebよりアクセス。
http://153.126.154.106/php_emotion_20170728/20170728photo.html
20110826oresama.JPGをアップロードしました。
OK!ファイルのアップロードまでは行きました!
http://153.126.154.106/php_emotion_20170728/20170728test1.php
http://153.126.154.106/php_emotion_20170728/20170729_test1.php
http://153.126.154.106/php_emotion_20170728/20170730_test1.php
http://153.126.154.106/php_emotion_20170728/20170730_test2.php
うーーん。
HTTP 500 エラー
申し訳ありません。Web サイトはこのページを表示できません
かあ・・・・
PHPのコード見てもHTTP/Request2.php
を使ってるから、それを生かすにはPEARがいるみたい。(=見に行ってるようだ)
https://docs.microsoft.com/ja-jp/azure/cognitive-services/emotion/quickstarts/php
やっぱりPEARをインストールしてみるか・・
ちなみにデモやったら、Nuetoralだと。それなりの評価
(図1)
PEAR本体のインストール
http://linuxserver.jp/%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0/php/pear/pear%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab#PEAR-2
# yum -y install php-pear
でできたみたい・・・
# pear
# pear list
# pear version
でなんかいろいろ出てくるので。。。
wget http://download.pear.php.net/package/HTTP_Request2-2.3.0.tgz
wget http://download.pear.php.net/package/Net_URL2-2.1.2.tgz
tar zxvf xxxxコマンドで解凍
tar zxvf HTTP_Request2-2.3.0.tgz
tar zxvf Net_URL2-2.1.2.tgz
写真のありかは、
http://153.126.154.106/php_emotion_20170728/files/20110826oresama.JPG
http://153.126.154.106/php_emotion_20170728/files/20100501吉原家.JPG
20170728test1.php
PEARからコマンドでHTTP_Requestとかインストールしてみる。
pear channel-update pear.php.net
pear install Net_URL2-2.2.0
pear install HTTP_Request2-2.3.0
pear install HTTP_OAuth-0.2.3   (これはやんなかった)
■ちなみに、
https://dev.projectoxford.ai/docs/services/5639d931ca73072154c1ce89/operations/563b31ea778daf121cc3a5fa/console

open API testing console
では、うまく行ってる?みたいだから、PHPのコード記述が間違ってるのか?と。
下記で、送ってうまく表示できているようなので。
———————————————
POST https://westus.api.cognitive.microsoft.com/emotion/v1.0/recognize HTTP/1.1
Host: westus.api.cognitive.microsoft.com
Content-Type: application/json
Ocp-Apim-Subscription-Key: 29985767867e48d7b5070f58be141866
{ “url”: “http://153.126.154.106/php_emotion_20170728/files/20110826oresama.JPG” }
———————————————
(図2)
■うーーん。
http://d.hatena.ne.jp/golden-eggs/20080723/1216812792
に聞くと、、、
どうやら、PEARちゃんは、
# pear config-get php_dir
で調べると
/usr/share/pear
にインストールされとる?
これを書かないといけないのでは???
//パスを通してインクルード
$path = dirname(__FILE__).”/php_emotion_20170728″;
set_include_path(get_include_path().PATH_SEPARATOR.$path);
も追加
fileコマンドを使えばUTF-8のBOMの有無や改行コードがCRLFかどうかがチェックできる
で調べると、
find . -type f -name “201707*.*” | xargs file
■UTF-8でないの原因か??
[root@ik1-313-16602 php_emotion_20170728]# find . -type f -name “201707*.*” | xargs file
./20170729_test1.php:   PHP script text
./20170728test1.php:    PHP script text
./20170728_upload.php2: UTF-8 Unicode C++ program text
./20170728photo.html:   HTML document text
./20170728_upload.php:  HTML document text
./20170728_upload.php1: HTML document text
では、これで変換を
$ iconv -f EUCJP -t UTF8 20170729_test1.php > 20170729_test2.php
■ヘッダにこれを書くか?
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>sample</title>
</head>
<body>
<p>
■JavaScriptでやってみる
https://docs.microsoft.com/ja-jp/azure/cognitive-services/emotion/quickstarts/javascript
http://153.126.154.106/php_emotion_20170728/20170730_js.html
“success”ってサイトからのメッセージだけ??出たけど・・・・・
■pythonでやってみる
http://153.126.154.106/php_emotion_20170728/20170730_emo.py
# python 20170730_emo.py
で結果がコマンドラインでは返ってきた・・・・
[root@ik1-313-16602 php_emotion_20170728]# python 20170730_emo.py
[{“faceRectangle”:{“height”:406,”left”:863,”top”:151,”width”:406},”scores”:{“anger”:9.52410346E-07,”contempt”:0.000829975063,”disgust”:7.344764E-07,”fear”:2.54277044E-10,”happiness”:0.1160154,”neutral”:0.8831446,”sadness”:7.53089944E-06,”surprise”:7.734229E-07}}]
■共用サーバでできるかな???
URLは、
http://dasudasu.sakura.ne.jp/php_emotion_20170728/20170730_test1.php
写真は、
http://dasudasu.sakura.ne.jp/php_emotion_20170728/files/20110826oresama.JPG
Fatal error: Class ‘PEAR_Exception’ not found in /home/dasudasu/www/php_emotion_20170728/HTTP/Request2/Exception.php on line 45
やっぱ、PEARが無いって言われる・・・・
★★★★★★★★★★★ここから★★★★★★★★★★★★
Prerequisite
Get your free Subscription Key here
https://azure.microsoft.com/en-us/try/cognitive-services/
Emotion API PREVIEW
Emotion API PREVIEW
This API key is currently active
30 days remaining
Personalize experiences with emotion recognition
30,000 transactions, 20 per minute.
Endpoint: https://westus.api.cognitive.microsoft.com/emotion/v1.0
Key 1: 299*******************************e141866
Key 2: 229*******************************b3a093b

291_Microsoft Cognitive Servicesで人工知能を体験・でもNG

Microsoft Cognitive Servicesで人工知能を体験

Microsoft Cognitive Servicesで人工知能を体験しよう!(Emotion API編)


を参考

APIの使い方は今回も、GitHubに既に公開されてあるCogniteive Service関連のSDKとサンプルのリポジトリを使いたいと思います。。。と。
https://github.com/Microsoft/ProjectOxford-ClientSDK
リポジトリの中にEmotionAPI-WPF-SamplesというVisual Studioのソリューションがあるのでそれをビルドして実行すればサンプルアプリケーションを利用可能になります。
で、VSは使いづらいので、、
下記、PHPをソースを使って、
GoogleVisionでやったようにサーバ画像フォルダ/ファイルを指定すれば
Azureでの感情表現API/AIが作れるかも?と。
Emotion API PHP Quick Start
https://docs.microsoft.com/ja-jp/azure/cognitive-services/emotion/quickstarts/php
にコードがあるのでそれを使ってみる。
【194】を参考
http://dasudasu.sakura.ne.jp/php_emotion_20170728/20170728photo.html
ソースは、
ーーーーーーーーーーーーーーーーーーーーー
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>sample</title>
</head>
<body>
<form action=”20170318_upload.php” method=”post” enctype=”multipart/form-data”>
emotionファイル:<br />
<input type=”file” name=”upfile” size=”40″ /><br />
<br />
<input type=”submit” value=”emotion file アップロード” />
</form>
</body>
</html>
ーーーーーーーーーーーーーーーーーーーーー
で、まずWeb表示はOK!
【195】を参考
フォームから送信されたデータを受け取るPHPプログラムを作成、、か。。
アップロードされたファイルの情報は $_FILES に格納。。。と。
前に挙げたサンプルフォームからファイルを受け取る場合、form.html と同じフォルダに
20170728_upload.php (form の action で指定したファイル。)を作成し、以下の内容を記述します。。。と。
コードは、
=============
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>sample</title>
</head>
<body>
<p><?php
if (is_uploaded_file($_FILES[“upfile”][“tmp_name”])) {
if (move_uploaded_file($_FILES[“upfile”][“tmp_name”], “files/” . $_FILES[“upfile”][“name”])) {
chmod(“files/” . $_FILES[“upfile”][“name”], 0644);
echo $_FILES[“upfile”][“name”] . “をアップロードしました。”;
} else {
echo “ファイルをアップロードできません。”;
}
} else {
echo “ファイルが選択されていません。”;
}
?></p>
</body>
</html>
=============
で、同じ場所に files フォルダを作成し、書き込み権限を与えておきます、、、か。
・・・・
試すと、、、
WIN_20160102_13_24_12_Pro.jpgをアップロードしました。
よしっと!
【197】を参考
■PHPでAzureでの感情表現APIにリクエスト
ここからは、サンプルプログラムにいきなり。
ズルく行きます。
はい、だめ。。。
見ると、、 Apache HTTP client from HTTP Components を使うと書いているのでそれをDLしてみる。
場所は、
http://hc.apache.org/downloads.cgi
から。
で、結局わからんので、もっと優しいところ探して
https://developer.cybozu.io/hc/ja/articles/202657614-HTTP-Request2%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%9Fkintone-REST-API%E3%81%AE%E6%89%B1%E3%81%84%E6%96%B9?mobile_site=true
HTTP/Request2.phpインストール
を参考にやってみます。
HTTP_Request2のインストール方法は、http://pear.php.net/package/HTTP_Request2/downloadを参照してください。
なので、ここへ。
http://pear.php.net/package/HTTP_Request2/download
でも、、、古いけど
PEARをインストールしないでHTTP_Request2を使う方法
が私のレベルには優しそうなので。こっちをやってみる。★★
http://absg.hatenablog.com/entry/2014/10/24/180338
①HTTP_Request2を入手する
以下のページから取ってくる。
http://pear.php.net/package/HTTP_Request2/download
②Net_URL2を入手する
以下のページから取ってくる。
http://pear.php.net/package/Net_URL2/download
③自分のサーバにファイルを展開する
取ってきたHTTP_Request2とNet_URL2のファイルを自分のサーバに展開する。
④ディレクトリを移動する
HTTP_Request2の「HTTP」ディレクトリを自前の「hoge」ディレクトリ下に移動する。
また、Net_URL2「Net」ディレクトリを自前の「hoge」ディレクトリ下に移動する。
(↓こんな感じにする)
php_emotion_20170728

├─HTTP
│  ├─Request2.php
│  └─Request2

└─Net
└─URL2.php
http://download.pear.php.net/package/HTTP_Request2-2.3.0.tgz
http://download.pear.php.net/package/Net_URL2-2.1.2.tgz
tar zxvf xxxxコマンドで解凍できる。
Filezillaでsakuravps2で解凍したファイルを一度Win10にDL
その後、FFFTPでdasudasu.sakura.ne.jpへ転送でやりました。
⑤php内でインクルードする
phpでインクルードするときに以下のようにパスを通しておく。
これでHTTP_Request2が使えるようになる
コード内に
//パスを通してインクルード
$path = dirname(__FILE__).”/hoge”;
set_include_path(get_include_path().PATH_SEPARATOR.$path);
require_once(“HTTP/Request2.php”);
を書いておく、、、と。
でもダメ、PEARを見てるようなので。
PEARもインストールしてみるか・・・どうやんだろう??
Warning: require_once(PEAR/Exception.php): failed to open stream: No such file or directory in /home/dasudasu/www/php_emotion_20170728/HTTP/Request2/Exception.php on line 25
Fatal error: require_once(): Failed opening required ‘PEAR/Exception.php’ (include_path=’.:/home/dasudasu/www/google-api-php-client/src:/home/dasudasu/www/php_emotion_20170728/php_emotion_20170728′) in /home/dasudasu/www/php_emotion_20170728/HTTP/Request2/Exception.php on line 25
なので、sakuravps2のレンタルサーバで再トライしてみます。

290_facebook_&_api.aiを試す_でも途中まで

facebookとapi.aiを連携してみる
http://qiita.com/naoyashiga/items/6c663f6e773490934312
を参考
■事前準備
herokuのアカウント登録
id:h*******@yahoo.**.**
pass:A*******
■Api.aiを使う
https://api.ai/
(図1)

(図2)
うーんこれは使わない。。。。
■botを作るためには、Facebookアプリ登録&Facebookページ作成が必要になります。
Facebookアプリ登録&Facebookページ作成
https://developers.facebook.com/quickstarts/?platform=web
「20170717_yoshi」でページ作成
(図3)

(図4)

■APPのダッシュボードが生成
(図5)
2017­0­7­1­7­_­y­oshi
190**********21303
f439f**********91bcd**********b41327
(図6)
■トークン作成

(図7)

(図8)
EAA**********AAWTgPWXH**********XvN7ydLeYYjK6**********I8B1UK*********************kTl**********Q42X494ufK**********Cp95d7CQTA**********SYoEzD
(図9)
■Agent作成
こちらから新規Agentを作成。
https://console.api.ai/api-client/#/newAgent
■Facebook Messengerと結びつける
https://api.ai/
https://api.ai/docs/integrations/facebook
作業手順
Integrationsタブをクリック
Enable SwitchボタンをONにする
Deploy Herokuボタンを押す(Heroku Free Planではアプリケーションを5個までしか作成できない。5個作成している方は既存のものを1つ削除する必要があるので注意。)
Saveボタンを押して保存
(図10)
いろいろ出来るUI
(図11)
■Heroku Appの設定
・・・とここまで。
最大の5つにAPPがリーチしたので作成できないと。。
そんなに作ったっけ??
なので、ここまで。
まあ、yoshiyoshi商店だけ作れたのでイメージは分かったかな???
以上

289_api.aiを試す_try_it_「ラーメンメニュー」★

API.AIを使ってみる
http://qiita.com/flatfisher/items/76bc86b65e5f2150a1a0
を参考
API.AIの登録
API.AIでサインアップ
https://api.ai/
h.yoshihara1204@gmail.comで登録
Create new agentをクリック
以下の内容で保存します
– Agent name:ラーメン2
– Agent type:Public
– DESCRIPTION:これはラーメン屋のプロジェクトです(2017/07/16)
– LANGUAGE:日本語
– DEFAULT TIME ZONE:(GMT+9:00) Asia/Tokyo
Entitiesを作成する
Entities名にRamenMenuと入れます。
Intentsの作成
Intent nameにOrderと入れます。
Action にorderといれます。
User says に「RamenMenuをお願いします。」と入力
最後にText responseに「かしこまりました。」と登録します。
話しかける
右のテキストバーから、テキストもしくは音声で「味噌ラーメンをお願いします。」と入力してください。

287_swp(スワップファイル)を削除する

swp(スワップファイル)を削除する
ファイルが壊れたりして、途中保存の.swpファイルがあるらしい。
これ$ ls -lで見ても表示されない・・
だけど普通のrmコマンドで消せる、と。
http://www.php-mysql-linux.com/linux/swp-delete/
を参考。。。
発生の原因は、、、
(1)は他のプログラムが同じファイルを編集している可能性あり。
(2)はファイルが壊れていてスワップファイルが存在する場合。
らしい。。。
スワップファイルは下記のように消せます。
rm .20170622_og_d_list.php.swp
(はい、消せました!!!)
以上