コンテンツへスキップ

UTF-8 のEmoji利用について

すっと昔は、通信キャリア毎でのコードの違いなどから、利用する際には独自にコード変換などをする必要があり、多くのユーザー環境を考えると、利用するにはそれなりの決断と覚悟が必要でした。

Unicodeで規格化され、日本のみならず全世界でEmojiが利用できるのですね。

あまり、細かいことを気にせずに利用出来そうです。

じゃんけんの、グー・チョキ・パーって、カタカナやアルファベットで書くよりも、やはり、絵文字✊✌✋が一番分かりやすい。

よって、まずはグーチョキパーがどの程度のクライアントでサポートされているのか気になり、調べてみました。

結論として、一番最初のEmoji規格である、Unicode6.0よりサポートされておりました。

Emoji のクライアント毎のサポートするUnicodeバージョン

Emoji Version 1.0は、Unicode 6.0として順次追加されて行きました。

パソコンやスマートフォンなどで世界的に対応されたことから日本国内だけでなく世界中で利用されるようになりました。

日本発信の文化であり、「Emoji」が正式名称となります。

Microsoft社 Windows 7より、Unicode 6.0 をサポート

Apple社 Mac OS X Lionより、Unicode 6.0 をサポート

Google社 Android 4.1より、Unicode 6.0 をサポート

現在は、Unicode 12.0

  • 2010年10月11日 Unicode 6.0.0 携帯電話の絵文字
  • 2014年6月16日 Unicode 7.0.0 約250字の絵文字追加。
  • 2016年6月21日 Unicode 9.0 72種類の絵文字追加
  • 2017年6月20日 Unicode 10.0 56種類の絵文字追加
  • 2019年3月5日  Unicode 12.0.0 59種類の絵文字追加、3019個の絵文字

Emoji入力について

日本語入力時の変換で、絵文字は出てきますね。

後は、コード直接よりも、以下の文字一覧を公開しているサイトからコピー&ペーストして利用するのも簡単だと思います。

https://lets-emoji.com/emojilist/

UnicodeのEmoji 12.0の一覧

http://unicode.org/Public/emoji/12.0/emoji-data.txt

NVIDIA Jetson Nano

NVIDIA CUDA Toolkit 10.0 に対応しcuDNN 7.3など、機械学習時にデファクトスタンダートとなっているライブラリやフレームワークが、利用可能になっています。
TensorFlow や PyTorch、Caffe、Keras、MXNet などの機械学習 (ML) フレームワークに対応しています。ネイティブにインストールすることができます。

Raspberry Pi with NCS2 VS Jetson

導入時に気になったのは、開発者コミュニティーです。
Raspberry Piは、歴史もあり、世界中の方々が同じような悩みを持ち、各種解決策がWEBに公開されています。一方で、NVIDIA Jetson Nanoは、どの程度このようなコアユーザーによる情報公開などがされているのか気になりました。

結論からするとNVIDIAの社員や関係者が協力にサポート、情報発信。
さすが、大手ですね、ハードの共有体制もRaspberry Pi と比べて感心しましたが、開発コミュニティーへの社員の書き込みが、本当にすごい。
オープンコミュニティの新しい形にも見えました。ハードでビジネスは成立し、技術者が率先して、コミュニティに参加。これは、弱点と感じた部分を、むしろ強み(正しい情報、責任感ある素早い対応)にしております。
あとは、ケースやファンなど、市場の大きさに合わせて、周辺のアクセサリーメーカーが追従してくれば、IoTにおけるローエンドエッジデバイスの筆頭になりそうです。
個人的には、Intel NCS2も引き続き注目して行きます。OpenCVのDNNに対応していたりと、まだまだ一長一短があるように感じます。
ただし、機械学習や推論を目的としたIoTデバイスの本命は、Jetson Nanoになりそうです。IntelのNCSはベアボーン系のミニPCかな。

関連記事:

NVIDIA Jetson Nanoで機械学習(推論)

Movidius Neural Compute Stick2とRaspberry Pi 3B +も利用しておりますが、GPU/推論向けデバイスが一体化されており、少しサイズは大きいです。
USB3.0などI/Fに差分もあるので、Raspberry Pi 4Bと比較したほうが良いかもしれません。ただし、Raspberry Pi 4B と NCS2を同時導入すると考えると、Jetson Nanoのほうがコストパフォーマンスが良いと思いますし、便利なフレームワーク利用により、開発時の手間(コスト)も考えると、機械学習にはNVIDIA Jetson Nanoがベストな選択と思います。NVIDIAですから。

Jetson Nano、Raspberry Pi 3B + with NCS2 速度比較

めざましじゃんけん時に取得したWEBカメラ画像を216枚で画像認識エンジンを動作させた際の性能比較です。
以前同じテストを用いて、NCS2(Movidius Neural Compute Stick 2)導入により十分高速化された結果となりました。今回は、その結果と比べても十分に魅力的なJetson Nanoの結果が出ました。

参考記事:ディープラーニング向けUSBアクセラレーターNeural Compute Stick 2ー

Windows(GPU未使用)
Core i7 6700/(Skylake) クロック周波数:3.4GHz
15秒 opencv.dnn
Raspberry Pi 3
Model B+
ARM Cortex-A53 1.4GHz
785秒 opencv.dnn
Raspberry Pi 3
Model B+
ARM Cortex-A53 1.4GHz
+  Movidius Vision Processing Unit(Myriad 2)
105秒 opencv.dnn
NVIDIA Jetson Nano
Quad-core ARM A57 @ 1.43 GHz
109秒 opencv.dnn
NVIDIA Jetson Nano
Quad-core ARM A57 @ 1.43 GHz
+ 128-core Maxwell
46秒 Keras-YOLO
2019-08-14 20:34:48,460:202:INFO:ループ開始:D:\pic4ml\Janken_Target_Test\20190806_055717_102196_1.jpg 処理回数:1
2019-08-14 20:35:03,389:256:INFO:ジャンケン結果判定 Len(total_results): 3 List Values: 0,2,5
019-08-14 20:35:03,390:289:INFO:ジャンケン結果:Chokiを出してLose、相手はGoo
2019-08-15 12:11:10,292:202:INFO:ループ開始:/home/miki/cronScript/Janken_Target_Test/20190806_055717_102196_1.jpg 処理回数:1
2019-08-15 12:24:15,786:256:INFO:ジャンケン結果判定 Len(total_results): 3 List Values: 0,2,5
2019-08-15 12:24:15,787:289:INFO:ジャンケン結果:Chokiを出してLose、相手はGoo
2019-08-24 12:16:09,419:202:INFO:ループ開始:/home/miki/cronScript/Janken_Target_Test/20190806_055717_102196_1.jpg 処理回数:1
2019-08-24 12:17:54,200:256:INFO:ジャンケン結果判定 Len(total_results): 3 List Values: 0,2,5
2019-08-24 12:17:54,201:289:INFO:ジャンケン結果:Chokiを出してLose、相手はGoo
created by Rinker
NVIDIA
¥19,000 (2021/08/19 16:46:56時点 Amazon調べ-詳細)

関連記事:NVIDIA JETSON NANO

Intel Neural Compute Stick 2

2019年10月05日  めざましじゃんけん 結果

フジテレビ めざましテレビ めざましじゃんけん の結果を保証したり、全ての結果が記載を保証するものではありません。

2019年10月05日のめざましじゃんけんの結果をベストエフォートで公開します。


じゃんけん結果システムイメージ

Goo(グー) Choki(チョキ) Pa(パー)

めざましテレビ|めざましじゃんけんーフジテレビ

めざましじゃんけん結果
回次結果対戦相手
10月05日
(土曜日)
【2戦目】08時22分生じゃんけん!高岡早紀さん
【1戦目】07時38分生じゃんけん!谷尻萌キャスター

2019年09月30日週 めざましじゃんけん 結果

フジテレビ めざましテレビ めざましじゃんけん の結果を保証したり、全ての結果が記載を保証するものではありません。

2019年09月30日週 のめざましじゃんけんの結果を公開します。


じゃんけん結果システムイメージ

Goo(グー) Choki(チョキ) Pa(パー)

めざましテレビ|めざましじゃんけんーフジテレビ

めざましじゃんけん結果
回次結果対戦相手
10月05日
(土曜日)
【2戦目】08時22分生じゃんけん!高岡早紀さん
【1戦目】07時38分生じゃんけん!谷尻萌キャスター
10月04日
(金曜日)
【4戦目】07時58分井上清華アナウンサー
【3戦目】07時35分藤原竜也さん
【2戦目】06時58分千鳥
【1戦目】05時58分まちかどじゃんけん
10月03日
(木曜日)
【4戦目】07時58分生じゃんけん!伊野尾慧パーソナリティ
【3戦目】07時35分坂上忍さん
【2戦目】06時58分織山尚大さん、元木湧さん
【1戦目】05時58分まちかどじゃんけん
10月02日
(水曜日)
【4戦目】07時58分井上清華アナウンサー
【3戦目】07時35分スピードワゴン りんごちゃん
【2戦目】06時58分SAMさん
【1戦目】05時58分まちかどじゃんけん
10月01日
(火曜日)
【4戦目】07時58分生じゃんけん!山崎育三郎さん
【3戦目】07時35分生じゃんけん!生田竜聖アナウンサー
【2戦目】06時58分生じゃんけん!松川星ちゃん
【1戦目】05時58分まちかどじゃんけん
9月30日
(月曜日)
【4戦目】07時58分設楽統さん
【3戦目】07時35分スタジオ生じゃんけん
【2戦目】06時58分森本慎太郎さん
【1戦目】05時58分まちかどじゃんけん

2019年10月04日  めざましじゃんけん 結果

フジテレビ めざましテレビ めざましじゃんけん の結果を保証したり、全ての結果が記載を保証するものではありません。

2019年10月04日のめざましじゃんけんの結果をベストエフォートで公開します。


じゃんけん結果システムイメージ

Goo(グー) Choki(チョキ) Pa(パー)

めざましテレビ|めざましじゃんけんーフジテレビ

めざましじゃんけん結果
回次結果対戦相手
10月04日
(金曜日)
【4戦目】07時58分井上清華アナウンサー
【3戦目】07時35分藤原竜也さん
【2戦目】06時58分千鳥
【1戦目】05時58分まちかどじゃんけん

サンプルスクリプトPythonからメール送付

以下が、サンプルスクリプトになります。

import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.utils import formatdate

def send_email(to_adress, send_subject, send_message):
    from_address = 'xxx@xxx.com'
    charset = 'iso-2022-jp'
    msg = MIMEText(send_message, 'plain', charset)
    msg['Subject'] = Header(send_subject, charset)
    msg['From'] = from_address
    msg['To'] = to_adress
    msg['Date'] = formatdate(localtime=True)
    smtp = smtplib.SMTP('@@smtp_adress@@')
    smtp.sendmail(from_address, to_address, msg.as_string())
    smtp.quit()

send_email('aaa@bbbb.com', 'サブジェクト', 'メッセージ本文')

参考にさせて頂いたサイト

https://www.python-izm.com/advanced/mail_send/

2019年10月03日  めざましじゃんけん 結果

フジテレビ めざましテレビ めざましじゃんけん の結果を保証したり、全ての結果が記載を保証するものではありません。

2019年10月03日のめざましじゃんけんの結果をベストエフォートで公開します。


じゃんけん結果システムイメージ

Goo(グー) Choki(チョキ) Pa(パー)

めざましテレビ|めざましじゃんけんーフジテレビ

めざましじゃんけん結果
回次結果対戦相手
10月03日
(木曜日)
【4戦目】07時58分生じゃんけん!伊野尾慧パーソナリティ
【3戦目】07時35分坂上忍さん
【2戦目】06時58分織山尚大さん、元木湧さん
【1戦目】05時58分まちかどじゃんけん

Rapberry PiからPHPでメール送信(SSMTP経由)

PHPの利用するコンフィグファイルを確かめます。
コマンドラインで実行する場合は、WEBサーバで利用するコンフィグファイルは、通常異なります。

root@raspberrypi:~# php --ini
Configuration File (php.ini) Path: /etc/php/7.3/cli
Loaded Configuration File: /etc/php/7.3/cli/php.ini
Scan for additional .ini files in: /etc/php/7.3/cli/conf.d
Additional .ini files parsed: /etc/php/7.3/cli/conf.d/10-mysqlnd.ini,
/etc/php/7.3/cli/conf.d/10-opcache.ini,
/etc/php/7.3/cli/conf.d/10-pdo.ini,
/etc/php/7.3/cli/conf.d/15-xml.ini,
/etc/php/7.3/cli/conf.d/20-calendar.ini,
/etc/php/7.3/cli/conf.d/20-ctype.ini,
/etc/php/7.3/cli/conf.d/20-curl.ini,
/etc/php/7.3/cli/conf.d/20-dom.ini,
/etc/php/7.3/cli/conf.d/20-exif.ini,
/etc/php/7.3/cli/conf.d/20-fileinfo.ini,
/etc/php/7.3/cli/conf.d/20-ftp.ini,
/etc/php/7.3/cli/conf.d/20-gd.ini,
/etc/php/7.3/cli/conf.d/20-gettext.ini,
/etc/php/7.3/cli/conf.d/20-iconv.ini,
/etc/php/7.3/cli/conf.d/20-imap.ini,
/etc/php/7.3/cli/conf.d/20-json.ini,
/etc/php/7.3/cli/conf.d/20-mbstring.ini,
/etc/php/7.3/cli/conf.d/20-mysqli.ini,
/etc/php/7.3/cli/conf.d/20-pdo_mysql.ini,
/etc/php/7.3/cli/conf.d/20-pdo_pgsql.ini,
/etc/php/7.3/cli/conf.d/20-pgsql.ini,
/etc/php/7.3/cli/conf.d/20-phar.ini,
/etc/php/7.3/cli/conf.d/20-posix.ini,
/etc/php/7.3/cli/conf.d/20-readline.ini,
/etc/php/7.3/cli/conf.d/20-shmop.ini,
/etc/php/7.3/cli/conf.d/20-simplexml.ini,
/etc/php/7.3/cli/conf.d/20-sockets.ini,
/etc/php/7.3/cli/conf.d/20-ssh2.ini,
/etc/php/7.3/cli/conf.d/20-sysvmsg.ini,
/etc/php/7.3/cli/conf.d/20-sysvsem.ini,
/etc/php/7.3/cli/conf.d/20-sysvshm.ini,
/etc/php/7.3/cli/conf.d/20-tokenizer.ini,
/etc/php/7.3/cli/conf.d/20-wddx.ini,
/etc/php/7.3/cli/conf.d/20-xmlreader.ini,
/etc/php/7.3/cli/conf.d/20-xmlwriter.ini,
/etc/php/7.3/cli/conf.d/20-xsl.ini

コマンドライン向けPHP構成ファイルphp.iniのsendmail_pathを変更

root@raspberrypi:~# vi /etc/php/7.3/cli/php.ini

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
;sendmail_path =
sendmail_path = /usr/sbin/ssmtp -t

PHPのメール送信サンプルスクリプト

メールヘッダーにマルチバイト文字を利用する際は、mb_encode_mimeheaderを用いて、エンコーディングを行います。

<?php

function send_notice($title, $message){
$to = "kenichi.miki@gmail.com";
$headers = "From:". mb_encode_mimeheader("メール通知") ."<notice@192.168.0.108>".PHP_EOL;
if(mb_send_mail($to, $title, $message,$headers)){
echo "メールを送信しました";
} else {
echo "メールの送信に失敗しました";
}
}

send_notice("テストRaspi","メッセージテスト");

SSMTP利用時のFromアドレス

SSMTPの設定によって、メールを送付するプログラムで指定したFromアドレスが無効化されます。プログラムで指定したFromアドレスを有効化するために、ssmtp.confの設定を確認します。

@raspberrypi:~/cronScript $ sudo vi /etc/ssmtp/ssmtp.conf

#
# Config file for sSMTP sendmail
#


(省略)

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=YES

2019年10月02日  めざましじゃんけん 結果

フジテレビ めざましテレビ めざましじゃんけん の結果を保証したり、全ての結果が記載を保証するものではありません。

2019年10月02日のめざましじゃんけんの結果をベストエフォートで公開します。


じゃんけん結果システムイメージ

Goo(グー) Choki(チョキ) Pa(パー)

めざましテレビ|めざましじゃんけんーフジテレビ

めざましじゃんけん結果
回次結果対戦相手
10月02日
(水曜日)
【4戦目】07時58分井上清華アナウンサー
【3戦目】07時35分スピードワゴン りんごちゃん
【2戦目】06時58分SAMさん
【1戦目】05時58分まちかどじゃんけん

新しい記事を公開しました:NVIDIA Jetson Nano USB ディスクをルート構成

USB接続外部接続構成

ディスク構成は、SDカードおよびUSB接続のHDD/SSDとなりますが、USB接続の外部ディスクにルートディレクトリを配置させたUSB接続の外部HDD/SSDブート構成が構築出来ました。

以下が、NVIDIAより提供されているSDカードイメージとなり、パーティションナンバー1番のAPPを外部接続のHDDやSSDに格納し、2番から12番をSDカードに格納し、USB3.0を認識出来るようにファイルを追加し、SDカードとUSB外部接続のHDD/SSDを準備します。

Sector size (logical/physical): 512B/512B 
Partition Table: gpt 
Disk Flags:  
Number  Start   End     Size    File system  Name  Flags
2      1049kB  1180kB  131kB                TBC  
3      2097kB  2556kB  459kB                RP1  
4      3146kB  3736kB  590kB                EBT  
5      4194kB  4260kB  65.5kB               WB0  
6      5243kB  5439kB  197kB                BPF  
7      6291kB  6881kB  590kB                TOS  
8      7340kB  7406kB  65.5kB               EKS  
9      8389kB  9044kB  655kB                LNX 
10      9437kB  9896kB  459kB                DTB 
11      10.5MB  10.6MB  131kB                RP4 
12      11.5MB  11.6MB  81.9kB               BMP  
1      12.6MB  15.9GB  15.9GB  ext4         APP

通常のSDカード構成

SDカードイメージダウンロード

以下のURLに従い、利用するOSの手順でSDカードを準備しJetson Nano Developer Kit SD Card Imageを作成すれば、SDカードを用いてJetson Nanoの起動は可能となります。

Write Image to the microSD Card

(Windows)SDカードフォーマット

Raspberry Piで起動ディスクを作成する際にも使う、おなじみのツールでSDカードをフォーマットします。

SD Memory Card Formatter for Windows Download

SDカードへOSイメージを焼き付け

こちらもRaspberry Piの起動ディスク作成でもおなじみのツールとないrます。

EtcherでダウンロードしたSDカードイメージをSDカードにコピーします。

「jetson-nano-sd-r32.2-2019-07-16.zip」「sd-blob-b01.img」

外部USB接続のHDDやSSDを用いたブート構成のディスク作成

以下のサイトが情報源となります。詳細も書かれています。
NVIDIA Jetson Nano: How to Install Rootfs on External USB Drive

最新のSDカードイメージと同様のバージョンで、SDカード用とUSB接続のHDD/SSD用のイメージが公開されています。

Etcherでそれぞれのイメージをコピーします。
USB接続のHDDやSSDへイメージを書き込む際には、以下の警告メッセージが出ますが、「Continue」続けるを選択して、イメージの作成を行います。

以上で、SDカードとUSB接続のHDDやSSDとのブート構成でのJetson Nanoの起動が出来ました。
まだ、導入時点なので、もう少しパーティション構成も検討し、本格導入する予定です。Jetson Nanoは正解なのか?
現時点の日本では、Raspberry Piほどコミュニティーが活性化されていないのが実態。ただし、機械学習を考えると、魅力的なスペックです。

created by Rinker
NVIDIA
¥19,000 (2021/08/19 16:46:56時点 Amazon調べ-詳細)