iPX社員によるブログ

iPX社員が"社の動向"から"自身の知見や趣味"、"セミナーなどのおすすめ情報"に至るまで幅広い話題を投下していくブログ。社の雰囲気を感じ取っていただけたら幸いです。

じめじめ。むしむし。を乗り切ろう!

お久しぶりです。スズキです。
梅雨の季節になり、湿っぽい空気に腐りかけている今日この頃です。

私の第3回のブログは湿度を題材に身の回りで起こっている現象を簡単に紹介できたらと思います。

Topic

1.湿度ってなに?
2.夏場に冷たい飲みものが入ったコップに水滴がつくの?
3.冬場に白い息がでるの?
4.洗濯物が乾く理由は?
5.番外編

1.湿度ってなに?

湿度とはこの飽和水蒸気量に対して実際の水蒸気量の割合のことになります。
飽和水蒸気量とは空気が含むことが出来る水蒸気の限界の量です。(1m3の空気に何グラムの水上気が含まれているか)
(1m3中10gの水が含むことができる空気に5g含まれていたら5/10*100=50%)
また、温度(気温)が高くなるとこの飽和水蒸気量も高くなるという関係が存在します。
つまり、温度をバケツに見立てると、温度が大きくなるとバケツのサイズも大きくなって沢山水が入るってことになります。

2.夏場に冷たい飲みものが入ったコップに水滴がつくの?

先述の飽和水蒸気量と温度の関係をイメージしてください。
夏場に冷えたコップの周りの空気は冷やされます。
温度が下がることによって空気の飽和水蒸気量も低下し、水蒸気でいられなくなった水は液体としてコップに付着します。
これは「結露」という現象です。
この原理を使った家電製品もあります。(番外編より)

3.冬場に白い息がでるの?

体温(36℃)付近の湿った吐息が寒い外気で冷やされ飽和水蒸気量を超えると発生します。原理は2.と同じです。
白く見える吐息は、水蒸気ではなく水なんですよ。(水蒸気は目で確認することが出来ないぐらい小さいものです)

4.外に洗濯物を干すと乾く理由は?

「蒸発」という現象で洗濯物が乾きます
「蒸発」とは水(液体)液面から水分子が飛び出す水(気体)現象のことです。
この現象は沸点より低い温度で起こり、蒸気は飽和水蒸気量になるまで続きます。
閉鎖された空間に洗濯物を置くと飽和水蒸気量になるまでは蒸発をしますが、限界があります。
風を当てると良く乾くのは洗濯物付近の水蒸気を風で流すことによって「蒸発」の手助けをしているからです。

良い天気(湿度が低い)時に洗濯物が外で干しておくだけで乾く理由です。

5.番外編

ジメジメと戦う強い味方。エアコンの除湿モード、除湿機
原理は先に紹介したエアコンは(熱交換器が)コップの役割をして部屋の湿度を奪っています。
水蒸気は水滴に変わり室外機から外にポイ(夏場の室外機から水が出る理由がわかりますね)
そういえば、夏場に車からも水が滴っている? なんででしょうね。

追記:

某空調メーカーさんと近いうちにお仕事をするかもしれないとエアコンについて勉強していたときに「除湿=電気代が高い!」という私の今まで概念を打ち破られました。その紹介を最後にしたいと思います。
先述の通り除湿はエアコンの熱交換器を冷たくして部屋の水蒸気を捕まえます。
次に熱交換器が通った冷たい空気はエアコンの設定温度になるまで空気を暖めて出すという動作をします。
ん?冷やして暖める?冷やすエネルギーと暖めるエネルギーをつかって空気を出したら電気代は高くなりますよね。
暑いけど、省エネで除湿しようと高めの設定温度で除湿していた私はショックをうけましたが、同時にガンガン冷やしていこうぜ!と思う今日この頃です。
※体の冷やしすぎに注意!

おわりに

以上知っている人は知っている、意外と知らない身の回りの現象についてざっくりと紹介させていただきました。
皆様の糧になれば幸いです。次回は冬なので、たまには趣味のスキーの話ができたらと思います。
雪が恋しい。スズキでした。

ねこ日記(2)

今回のブログ担当のウメザワです。ご無沙汰しております。

最近一気にジメジメと暑くなってきましたね。
クーラー付けないと暑くて起きてしまう位の熱帯夜も多くなってきました。

電気代を節約しながら朝まで起きずに快適に寝れるかどうかの瀬戸際をクーラーのおやすみタイマーで設定するのがプチブームです。
朝まで起きなかったら勝ちです(`・ω・´)


さて、タイトル通り私が担当の時は日記ですからね。
中身はありません。あるのは癒しだけです。

では早速行ってみましょー!!

続きを読む

「人とくるまのテクノロジー展 2017 名古屋」出展のご報告

iPXの山田です。

6月28日~30日に名古屋で開催された、「人とくるまのテクノロジー展 2017 名古屋」に出展しました。

物体認識のデモ展示について

弊社はコーンズテクノロジー(株)様のブースの一角をお借りして、デモ展示を行ないました。
今回のデモ製作を担当した、弊社の小川と廣崎です。

f:id:ipx-writer:20170629180954j:plain

今回は、赤外線センサー FLIR Boson®Deep Learningを組み合わせた、一般物体認識のデモを展示しました。

以下、開発者の小川より概要の説明です。



今回のデモ作成を担当した、iPX の小川です。
今回展示したデモの概要を簡単に紹介します。

デモ概要

デモの仕組みは、赤外線センサーのFLIR Boson® が捉えた熱情報を画像として可視化し、その画像に対してDeep Learningを用いて一般物体認識を行うものです。

一般物体認識は、画像から物体の種類とその物体がどの位置にどれ位の大きさで存在するかを推論する仕組みです。

認識モデルは、SSD(Single Shot MultiBox Detector)によってニューラルネットワークを構築しました。
ニューラルネットワークのモデル構築は、学習済みの画像認識モデルであるVGG16に対して転移学習を行ないました。
転移学習に必要となる教師データは、赤外線センサーで取得した画像にアノテーションを付与して作成しました。

SSDの特徴は、比較的軽いモデルでありながら精度が高いので、リアルタイムの物体検知に向いていることです。

またインファレンス(推論)時に使用した実行環境は、自動運転車向けAI車載コンピューターであるNVIDIA® DRIVE™ PX 2を用いています。

教師データには1万枚以上の画像データを用意しました。
これらの画像データに対して、1枚ずつアノテーションを付けていきました。
この作業は、内製ツールを作成して人海戦術で行いました。

f:id:ipx-writer:20170703102932j:plain

弊社では自動車制御開発、プロセスエンジニアリング、ソフトウェア開発の能力をベースに、Deep LearningやCUDA等、GPUを活用した技術サービスも提供しています。



ご来場いただいた方にも反響が大きく、皆様熱心に聴いていかれました。
ブースにお越しいただきました皆様、誠にありがとうございました。
またこのブログ記事を見てご興味のある方がいらっしゃいましたら、弊社までお気軽にお問い合わせください。

他ブースを見学した感想

私は入社してまだ日も浅いので、勉強のために他社のブースも見て回りました。
来年のビックサイトで開催されるオートモーティブワールドの出展に際して、自社ブースのデザインを担当するため、各社どういった
展示の見せ方をしているかを意識しながら見学しました。
最新のターボシステムやステアリング、ギアの実物展示の他、解析システムや自動運転などのデモもあり、各社とても分かりやすく印象に残りやすい展示であったように感じます。
ドライブシュミレーションやVRの体験デモもあり、来場者に楽しませながらPRをしようという創意工夫がありました。
私も来年の展示に向けて、今回得た学びを元に、ブースデザインを考えていきたいと思います。

f:id:ipx-writer:20170629180834j:plain
f:id:ipx-writer:20170629181029j:plain
最新のカーテクノロジーに触れることができ、とても有意義な時間でした。

自動運転とトロッコ問題

ご無沙汰しています。
相変わらずの雨男っぷりを発揮していますishizawaです。
当日は曇り予報だからと洗車をすると毎回雨に降られてへこんでます。
(晴れの日は洗ってる途中から乾くんで汚れが残りやすいんですよね)

ブログ担当少し前に大体体調を崩すのは何故なんでしょうかね。
今年は3月末にインフルエンザにかかりました…orz
だんだん暑くなってくる時期なので水分補給はしっかりしましょう。



今回は去年出たセミナーで話題に上がったネタを書こうと思います。

続きを読む

PC9801-VXと改造コード

はじめに

iPX砂子です。前回から随分と期間が空きました。当番に関係なく記事のネ タがあるなら書いたほうが良いかもしれません。

前回はEmacsネタだったわけですが、丁度その頃、未来技術遺産の発表があ りました。PC-9801も記憶遺産に選ばれました。

PC9800シリーズの思い出

私の父親がPCが好きで家にはPC9800シリーズが何台かありました。私が中学 生位の頃の話です。5インチのフロッピーディスクドライブが内蔵されてい るようなやつです。確か型式はPC-9801VXだったきがします。まあ、世間で はWindows95が発売されたころなのでその当時でさえ”旧式”ではありました。

当時はTVゲームが好きでプレイステーションRPGを主にプレイしていまし た。なにかの雑誌で改造コードなるものをみて、プロアクションリプレイを 購入してRPGのキャラクターのステータスを改変したの覚えています。

少しすると雑誌に掲載されている改造コードを使うだけでは物足りなくなり、 自ら改造コードを作成できないと考えはじめました。プロアクションリプレ イのカタログにPCと繋ぐことでプレイ中のTVゲームの解析が行なえるような やつです。父親に相談すると家にあるPCが対応しているので設定までしてく れることになりました。

購入した拡張ボードをPCの拡張スロットに設定してもらい、拡張ボードと プロアクションリプレイをフラットケーブルで接続してプレイステーションの メモリを解析するわけです。 設定が完了したPCとゲーム機で画面上に表示されている数字を変更できない か試行錯誤していました。

なにをやっていたのか?

今の知識で当時やっていたことを説明するならば、メモリに格納された値を 番地指定で更新していたと表現できるでしょう。 改造コードとは指定した メモリアドレスにある値を編集するものだったようです。

おそらく改造コードの作成作業とはプロアクションリプレイと繋げたゲーム機 のメモリをプロセスメモリエディターで編集していたのではないでしょうか?

具体的な作業

あの頃にやっていた作業をjavaのコードで再現してみましょう。

Characterクラスで名称、HP/MPを定義する。FF7のキャラクター"クラウド" をインスタンス化する。そして、そのインスタンスをバイナリシリアライズ し、ファイルに出力する。この出力したファイルを書き替えてキャラクター “クラウド"のHPを任意に変更できないだろうか?

コマンドライン

javac FF7.java

rem シリアライズ
java FF7

rem 書き換え

rem デシリアライズ
java FF7 a

Deserialized Character...
Name: CloudStrife
CurHP: 101
MaxHP: 223
CurMP: 50
MaxMP: 80

ソースコード

参考文献にあるTutorialPointのシリアライズのページのコード参考に一部書き換え。

import java.io.*;

public class FF7 {

    private static class Character implements java.io.Serializable {
        public String name;
        public int cur_hp;
        public int max_hp;
        public int cur_mp;
        public int max_mp;
    }

    public static void main(String [] args) {

        String name = "CloudStrife";

        if(args.length == 0){
            Character c = new Character();
            c.name = name;
            c.cur_hp = 101;
            c.max_hp = 223;
            c.cur_mp = 50;
            c.max_mp = 80;

            try {
                FileOutputStream fileOut =
                    new FileOutputStream(name + ".ser");
                ObjectOutputStream out = new ObjectOutputStream(fileOut);
                out.writeObject(c);
                out.close();
                fileOut.close();
                System.out.printf("Serialized data is saved in " + name + ".ser");
            }catch(IOException i) {
                i.printStackTrace();
            }
        }
        else{
            Character c = null;
            try {
                FileInputStream fileIn = new FileInputStream(name + ".ser");
                ObjectInputStream in = new ObjectInputStream(fileIn);
                c = (Character) in.readObject();
                in.close();
                fileIn.close();
            }catch(IOException i) {
                i.printStackTrace();
                return;
            }catch(ClassNotFoundException ce) {
                System.out.println("Character class not found");
                ce.printStackTrace();
                return;
            }

            System.out.println("Deserialized Character...");
            System.out.println("Name: " + c.name);
            System.out.println("CurHP: " + c.cur_hp);
            System.out.println("MaxHP: " + c.max_hp);
            System.out.println("CurMP: " + c.cur_mp);
            System.out.println("MaxMP: " + c.max_mp);
        }
    }
}

バイナリエディタでCloudStrife.serを開きます。すると下図のような画面 になります。(図はEmacsのhexl-mode)

f:id:ipx-writer:20170531194034j:plain

コードでHPは101(dex)に設定してあるため、65(hex)を探します。しかし、 65(hex)は複数あるためどれがHPを表すものかは特定できません。そこでソー スコードを編集してHPを110にして再度シリアライズしてみます。それをバイ ナリエディタで前回のシリアライズしたものと比較します。

f:id:ipx-writer:20170531194058j:plain

前回65(hex)であった4箇所のうち1箇所が6e(hex)になっています。どうもこの 箇所がHPを表すアドレスのようです。この箇所をff(hex)に変更して変更して 、デシリアライズしてみます。

rem デシリアライズ
java FF7 a

Deserialized Character...
Name: CloudStrife
CurHP: 255
MaxHP: 223
CurMP: 50
MaxMP: 80

成功です!!!プログラムを編集したりせずにバイナリデータの変更が行なえま した。こんな感じでキャラクターのステータスをMaxにしたりしてましたね。

結び

上記のjavaでの作業は改造コードというより、セーブデータの書き換えに近い です。しかし、作業そのものはほとんど同じなので今回はシリアライズしたデー タの編集で代用しました。プロセスメモリエディタのインストールなどが煩わ しかったという理由もありますが。。。

子供時代にやったことに限らず、過去の作業を振り替えり現在知っている知識 で当時の疑問などを解決できるかを試してみると発見があるやもしれませんね。

しかし、こんなことやってたからプログラマーになったんだろうな。。。

参考文献

  1. http://qiita.com/icelandnono/items/d30bce978bea8939b8a1
  2. https://www.tutorialspoint.com/java/java_serialization.htm
  3. http://sts.kahaku.go.jp/material/

人とくるまのテクノロジー展2017 横浜へ行ってきました

CPUのすずきです。

5/24から3日間開催されている、公益社団法人自動車技術会主催の自動車技術展:人とくるまのテクノロジー展2017 横浜@パシフィコ横浜へ行ってきました。

f:id:ipx-writer:20170526102554j:plain

自動車の部品からシステムまで様々な会社が参加され、部品の軽量化やエコ、自動運転など最新技術の展示が多くありました。

車の開発はいくつもの企業が展示を行っていましたが、それぞれ手法が異なっており、凄いと思いました。
自動運転のブースがあり、私は免許を持っていないのですが、いつか免許がなくても車が運転できるようになれば良いのにと思いました。
しかし自動運転システムのシミュレーションの体験で「×××の為、手動運転に切り替えます。」というケースがあり、免許なしでの運転は当分先だと思いました。

旭化成株式会社のコンセプトカーでは、カメラから取得した顔から脈の状態を計測し運転可能な体調であるかを計測する機能や、
車内のCO2濃度を計測し快適な運転を行えるよう空調を制御する機能などを搭載している車を開発しており、まさに社内の各部署の技術を結集させたコンセプトカーだと思いました。

ドライブシミュレータの展示ではコントローラであるハンドルに操作感をフィードバックすることで、タイヤが道路に食いつく独特なハンドルの重さを再現した展示をしている企業や、
ドライブシミュレータの小型+高性能化、実際に車を運転した場合の揺れや傾きを再現する仕組みを展示している企業があり、面白いと感じました。

f:id:ipx-writer:20170526103303j:plain
f:id:ipx-writer:20170526102913j:plain

その他、講演会も行っており、大変ためになる展示会でした。

日刊工業新聞社の主催でMBDセミナー@名古屋を開催しました

EPLU(Engineering Process Leading Unit)の加藤です。

 

5/17(水)に、日刊工業新聞社の名古屋支社にて、MBD(モデルベース開発)に関するセミナーに講師として登壇しました。

昨年12月の東京開催に引き続き、二回目の開催となりました。

f:id:ipx-writer:20170522104000j:plain

前回は半日コースでしたが、今回は1日コースという事で、内容を見直して実施しましたが、より分かり易い説明が必要だと今回もあらためて感じました。

またこのような機会があれば、さらに分かりやすいコンテンツを用意できたらと考えています。

 

このようなセミナーを通して、実際に現場でお仕事をされている方々の意見を聞く事が出来るので、むしろ我々の方が勉強させて頂いた、という感覚があります。

セミナーの中で頂いた質問やアンケートの内容は、今後の活動の参考にしたいと思います。

 

参加頂いた受講者の皆さま、ありがとうございました。

(宣伝)個別セミナーも対応可能です

お客様先へ訪問して、本セミナーと同様の内容を紹介させて頂くことも可能です。

MBDを推進するためにお悩みのお客様は、当社ホームページよりお問い合わせください。