ドラえもんは日本のディズニーかもなって。 #ネトフリ #STANDBYME2
2022.11.26
おはようございます、土曜日の朝、太陽に感謝!🙏
勤労感謝の日にこの記事は書いています、スタンド・バイ・ミードラえもん2を観ました。前作を観たのでその勢いで観ました。何かディズニー映画を観ているようなそんな感覚ですね。のび太を見ていると何だか頑張ろうってなりますし、そして何だか温かな気持ちになりますよね。
こういう作品を作っている人は心優しい人なんだろうなって思います。そして熱い情熱を持って作品を作っているのだろうなって見ていて感じました。藤子不二雄さんが描いていた未来とは違うところはいろいろとあるけれども、ロボットは登場しているし人工知能は着実に進化しています。
まとめ:未来は明るいと思って生きていけそうなそんな作品です、まさに日本のディズニーだと思いますし、夢がある作品だなって思います。子供に見せつつ大人が楽しんでいる作品なのかも。
昔懐かしいドラえもん是非、心温まる作品です。
タグ
2, BY, ME, STAND, STANDBYME, いろいろ, スタンド, ディズニー, ところ, ドラえもん, ネトフリ, のび太, はい, まとめ, ミー, ロボット, 予告, 人, 人工, 作品, 前作, 勢い, 勤労, 土曜日, 夢, 大人, 太陽, 子供, 心, 情熱, 感覚, 感謝, 日, 日本, 映画, 朝, 未来, 気持ち, 登場, 着実, 知能, 藤子不二雄, 記事, 進化,
物体認識ではラズパイが必ず必要でもないとふと思った。
2022.06.24
おはようございます。記事の投稿の時間帯から変えようか悩んでいます。
さて、今日のお題は「物体認識ではラズパイが必ず必要でもないとふと思った。」です。Iot(Internet of Things)で脚光を浴びたのが小さなパソコンとも言われるラズベリーパイです。これを使用して温度計や湿度、気圧などを測ったりそれを記憶出来たりします。ラズパイにカメラを接続し機械学習させて物体認識なども可能です。
ただ、物体認識に言えばお使いのWindowsやMacの入ったパソコンでもそういや出来てしまうなと思ったので、それを記事にしました。物体認識で重要なのはやはり学習なのですが世の中にはオープンソースで機械学習をある程度してくれているモデルが出回っています。なので、そちらをベースに再学習させる事により学習が可能かと思います。
物体認識するためには、WEBカメラが必要ですし、機械学習が出来る環境構築も必要になります。例えばTensorFlow(テンソルフロー)が動作出来る環境だとか、、、因みに古いパソコンでもTensorFlow(テンソルフロー)のバージョンを変えれば動きます。githubのmasterを使用せず古いバージョンを使いさえすれば。
タグ
Internet, IoT, Mac, of, te, Things, web, Windows, オープン, お使い, カメラ, これ, ソース, そちら, それ, ため, はい, パソコン, ベース, モデル, ラズ, ラズベリー, 世, 中, 事, 今日, 使用, 可能, 学習, 帯, 必要, 投稿, 接続, 時間, 構築, 機械, 気圧, 温度計, 湿度, 物体, 環境, 脚光, 記事, 記憶, 認識, 重要, 題,
TensorFlow Lite(テンソルフロー ライト)をインストールしモデル実行まで。
2021.06.14
ラズベリーパイ3にTensorFlow Lite(テンソルフロー ライト)をインストールしモデル実行まで軽く字幕で紹介した動画が下記になります。インストール方法は公式に書かれた通りに実行すれば上手くインストール出来るはずです。比較的に低スペックのマシンでも動くはずなのです、どうしてもエラーが出て動かないようであれば、それはおそらくあなたのマシンに問題があります?。
動画でハマりどころがあるという事をブログで解説しますと書いていますので、そのハマりどころを解説します。。。
TensorFlow Lite(テンソルフロー ライト)で動かす場合、label_image.pyの修正箇所が公式に書かれていると思いますが・・・?、ここで自分がハマり、実行するコマンドを打ってもパラメーターがどうたらというエラーが出力されて動きませんでした。結論から言うと原因はマスターのソースコードにあったのです。修正を要領よく修正しては駄目だった。直接的な原因となったのは–num_threadsのパラメーターを投げていたのが原因でした。
公式では下記の内容に変更しなさいと書かれています。tf.lite.Interpreterの部分を置き換えればよいだろうと思っていたのです。
interpreter = tf.lite.Interpreter(model_path=args.model_file)
マスターのソースコードは若干、公式とは違ってこのようなソースコードになっていました。
interpreter = tf.lite.Interpreter(
model_path=args.model_file, num_threads=args.num_threads)
渡す引数が一つ増えていたので、自分はそれを残していたのですが・・・?、これでは動かないのです。そう・・num_threads=args.num_threadsは削除してあげないとモデルを動かすことが出来なかったのです。それがわからず渡すパラメーターが駄目なんだとか思って四苦八苦していました。
自分みたいな修正方法している方も中にはいると思ったので、今回、初心者がハマった沼を紹介しました?。
タグ
3, image, label, LITE, py, tensorflow, あなた, インストール, エラー, コード, ここ, コマンド, スペック, ソース, それ, テンソル, はい, パス, パラメーター, フロー, ブログ, マシン, マスター, モデル, ライド, ラズベリー, 下記, 事, 修正, 公式, 出力, 動画, 原因, 問題, 場合, 字幕, 実行, 方法, 箇所, 紹介, 結論, 自分, 解説, 通り,
読了。
2020.05.02
寄り添うツイッター わたしがキングジムで10年運営してわかった「つながる作法」を本日、読了しましたので感想を残しときますね。
中の人の人間味あふれる本でした。ツイッター作法の極意は『ご近所付き合い』だなと感じました。その距離間が大事なんだな。この感覚は肌感覚で身につけるしか無いだなと言う感じがします。SNSで広報をしている地方の広報さん(中の人)とかいると思います、そして中々、売上に結びつかないなぁと思っている方必見の本であることは間違いないです。但しこうすれば良いという事柄が書かれている本では有りません。
それはこの本を手にとって読むことでよく分かります。ケース・バイ・ケースと言ったら良いのか分からないですが、この本を読むことで企業のSNS広報の運営のヒントがあるという事は確かだと思います。特にメンターがいない職場では一つの道しるべになる本かなと思いますが何をすれば良いとか明確な答えを書いている本では有りません。
因みに自分も個人的な呟きを少し増やそうかなと思っています。
タグ
10, SNS, キングジム, ケース, こと, ご近所, それ, ツイッター, はい, ヒント, メンター, わたし, 一つ, 中, 中々, 事, 事柄, 人, 人間味, 企業, 何, 作法, 地方, 大事, 広報, 必見, 感じ, 感想, 感覚, 手, 方, 本, 本日, 極意, 職場, 肌, 読了, 距, 身, 運営, 道しるべ, 離間,
画像をタイル状に分離して一括ダウンロードさせるジェネレーター
2019.09.07
画像をタイル状に分離して一括ダウンロードさせるジェネレーターを
作ってみました。画像は自動的に削除されます?
あることをすれば他人の画像がアップした画像も削除されます。
ちなみに一括ダウンロードbuttonを押すと画像がサーバー上に保存され
強制ダウンロードが始まります。
動作はブラウザChromeオンリーです。
また一括ダウンロードを押すと複数のファイルを一括ダウンロードするか
どうかの問い合わせが表示されますので「はい」を
選択してください。尚、30秒以内に保存されていないファイルは
次々と削除されます。
サイトはこちらから
https://zip358.com/tool/demo5/index-14.html
ソースコードは下記になります。
ページ(base64生成+画像ダウンロード処理)
追記:zipファイルにより格納するように処理を変更しました。
参考にしたサイト:https://ex1.m-yabe.com/archives/4215
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>画像分離してダウンロード:画像分離ジェネレーター</title>
<meta name="description" content="画像分離してダウンロード:画像分離ジェネレーター">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="../jquery/jquery-3.4.1.js"></script>
<link rel="stylesheet" href="../bootstrap/css/bootstrap.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-71682075-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-71682075-1');
</script>
<style>
body{
background-color: black;
color: antiquewhite;
}
img{
margin:10!important;
padding:10!important;
}
#container{
width: 100%;
}
#container img{
margin:10px;
}
</style>
</head>
<body>
<span id="bat"></span><a id="dl"></a>
<input class="form-control" type="file"></input>
<div id="container"></div>
<script>
$(function(){
$("[type=file]").on("change",function(){
$('#container').html("");
$("#bat").html("");
console.log($(this));
if(!$(this).prop('files')[0].type.match(/[png|jpg|jpge|gif]/)){
alert("ファイル形式エラー");
return false;
}
var canvas = document.createElement('canvas');
var reader = new FileReader();
reader.onload = function(event) {
var image = new Image();
image.onload = function() {
sprite = {width:50,height:50};
canvas.width = sprite.width;
canvas.height = sprite.height;
var ctx = canvas.getContext("2d");
var x = 0;
for(var i=0; i*sprite.height<image.height; i++){
for(var j=0; j*sprite.width<image.width; j++){
ctx.drawImage(
image,j*sprite.width,i*sprite.height,
sprite.width,sprite.height,
0,0,
sprite.width,sprite.height
);
var spriteElement = new Image;
spriteElement.src= canvas.toDataURL();
$('#container').append(spriteElement);
}
}
$("#bat").html("<input type='button' value='一括ダウンロード' onclick='bat_img()'>");
}
image.src = event.target.result;
}
reader.readAsDataURL($(this).prop('files')[0]);
});
});
function bat_img(){
var data = [];
for(var i=0; i< $("img").length;i++){
data.push({"base64":$("img").eq(i).attr("src"),"no":i});
}
$.ajax({
type: 'POST',
url: 'bat_img.php',
data:{"obj":data},
dataType: 'json'
}).done(function(obj){
if(obj[obj.length - 1 ].chk=="ok"){
var link = document.getElementById("dl");
link.href = obj[obj.length - 1].zippath;
link.download = "zipimg.zip";
link.click();
var data2 = [];
for(var i = 0 ; i < obj.length ; i++){
if(i==0){
data2.push({Path:obj.path,no:obj.no,t:obj.t,"zipimgpath":obj[obj.length - 1].zippath});
}else{
data2.push({Path:obj.path,no:obj.no,t:obj.t});
}
}
var del = function(){
$.ajax({
type: 'POST',
url: './bat_del.php',
data:{"obj":data2},
dataType: 'json'
});
};
del();
}
});
}
</script>
</body>
</html>
<?php
$i=0;
foreach($_POST["obj"] as $key=>$val){
$b64 = base64_decode(str_replace("data:image/png;base64,","",$val["base64"]));
$no = (int)$val["no"];
$t = time();
$Path = "./bat_img/tmp/$t-$no.png";
$re = @file_put_contents($Path,$b64);
if($re){
$obj[$i]["chk"] = $re?"ok":"ng";
$obj[$i]["name"] = "$t-$no.png";
$obj[$i]["path"] = $Path;
$obj[$i]["no"] = $no;
$obj[$i]["t"] = $t;
$i++;
}
}
$obj[--$i]["zippath"] = zipfile($obj);
print json_encode($obj);
function zipfile($obj){
$ZipFiles = function($obj){
foreach($obj as $key=>$val){
$path[] = $val["path"];
}
return $path;
};
$Zip_Files = $ZipFiles($obj);
$zipFileName = time().'_zipimg.zip';
set_time_limit(0);
$zip = new ZipArchive();
$zipTmpDir = './tmp/zip/';
$result = $zip->open($zipTmpDir.$zipFileName, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE);
if( $result !== true ){ //エラー処理
echo 'error!';
exit();
}
foreach ($Zip_Files as $key=>$filepath) {
$filename=basename($filepath);
// ZIP圧縮するファイルを追加
// ファイルパス・ファイル名としないと圧縮ファイルを解凍するとフルパスになる
$zip->addFile($filepath,$filename);
}
//ZIP 出力
$zip->close();
return $zipTmpDir.$zipFileName;
}
<?php
unlink($_POST["obj"][0]["zipimgpath"]);
foreach($_POST["obj"] as $key=>$val){
$Path = $val["Path"];
$no = (int)$val["no"];
$t = (int)$val["t"];
$cmd = function(){
foreach(glob("./bat_img/tmp/*") as $file_name){
$command = "rm -rf " . realpath($file_name);
exec($command);
}
};
if(pathinfo($Path)["extension"]=="png" and preg_match("/bat_img\/tmp/",$Path)){
if(is_file($Path)){
sleep(30);
unlink($Path);
}else{
$cmd();
}
}else{
$cmd();
}
}
タグ
1, 14, 30, 358, 4, 5, 64, archives, base, button, Chrome, com, demo, ex, html, https, index, m-yabe, tool, www, zip, アップ, オンリー, コード, こちら, こと, サーバー, サイト, ジェネレーター, ソース, タイル, ダウンロード, はい, ファイル, ブラウザ, ページ, 一括, 下記, 他人, 保存, 処理, 分離, 削除, 動作, 参考, 問い合わせ, 変更, 強制, 格納, 生成, 画像, 表示, 複数, 追記, 選択,
Raspberry Pi 2を使った自作IoT体験キットが玄人志向から売られてた。
2016.01.12
Raspberry Pi 2を使った自作IoT体験キットが玄人志向から売られてた。
このRaspberry Pi 2(ラズベリーパイ)ですがLinuxの雑誌には大体、登場しています。
去年辺りから火がついてきた品物ですがこれを使っていろいろな事ができるです。簡単にいえば昔のポケコンのLinuxバージョンだと思っていただけるとわかりやすいと思います。
Raspberry Pi 2からWindows10もサポートされているみたいですが、動作しないとかBBSに書き込まれています。
実際、キワモノの商品なので玄人志向の方々にしか使用が難しいのかも?Iot=モノインターネットのがじわじわと侵食してきています。
でも、いまのところ流行というよりはじわじわと試行錯誤しながら、新しい家電製品などに組み込まれているIot、そんなIotを格安で楽しめちゃうのが、Raspberry Pi 2という認識でいる自分。
実際、温度計センサーとRaspberry Pi 2を結びつけて、ある温度になると暑いとつぶやき事も可能です、他にもカメラと結びつけることも可能ですし、使いみちはいろいろとあると思います。
自分もちょっと興味ありです。
http://www.kuroutoshikou.com/product/others/others_iot/kuro-iotexp_kit/
タグ
10, 2, BBS, IoT, Linux, Pi, Raspberry, Windows, いま, いろいろ, インターネット, キット, キワ, これ, サポート, センサー, ところ, バージョン, はい, ポケコン, もの, ラズベリー, 事, 体験, 使用, 侵食, 動作, 去年, 品物, 商品, 大体, 実際, 家電, 志向, 方々, 昔, 格安, 流行, 温度計, 火, 玄人, 登場, 簡単, 自作, 自分, 製品, 試行錯誤, 認識, 雑誌,
高知県を代表するお菓子さん青柳のぐぅ?を食べてみた。{期間限定:和菓子屋さん?
2015.11.23
高知県を代表するお菓子さん青柳のぐぅ?を食べてみました。
感想はすごく甘くないので食べやすい感じです。
全体的にパイ生地で覆われていて中心にカスタードクリームとアーモンドクリームが練り込んでいるという感じです。クリームの量はそれほど入っていないので、どちらかと言うとパイ生地の表面を覆っているホイトチョコぽっい味が主な味になります(あとパイ生地の味)。
そんなに甘くないので、2,3個、一人で食べれるのではないかな?
まぁまぁ美味しかったです。
売れたら期間限定から商品として定着すると思いますが、自分としてはもう少し甘みが欲しかったような気がします。
ちなみに1個130円です。
?
タグ
1, 130, 2,3, アーモンド, お菓子, カスタード, ぐ, クリーム, ちょこ, どちらか, はい, ホイト, 一人, 中心, 代表, 味, 和菓子屋, 商品, 定着, 感じ, 感想, 期間, 気, 甘み, 生地, 自分, 表面, 量, 限定, 青柳, 高知県,