“Pikazo is a tool that let’s anyone become an artist”, began Noah Rosenberg (CEO, Pikazo) when speaking about CPU-based artistic computing. “About grade 3-4 people begin to censor themselves and don’t give themselves permission to call what they draw art”. Pikazo changes that through an innovative blend of machine-learning and behind-the-scenes artistic knowhow to create what Rosenberg refers to as a “Digital SLR for the masses” that lets everyone create beautiful art and which also satisfies their internal censorship. The service is free for low-resolution images. Through a collaboration with Intel to modernize code and take advantage of machine learning algorithms, Pikazo was able to drop the cost of the service for high-resolution images – suitable for framing or content creation – from $14 per image to $0.99.
Pikazo claims the process is fun, responsive and only requires two taps. The idea is to bring personal art into the lives of everyone. Simply load an image and start tapping to use Pikazo just for the fun of it.
Rosenberg explained that deep learning is used to identify pixel regions in the user’s image that are amenable to further Pikazo processing to add realistic brush strokes and other artistic effects. “No art school degree is required”, he added.
This stylistic processing step is what makes Pikazo so popular and distinguishes it from other image processing projects such as Google’s deep dream, which only magnifies image characteristics. Instead Pikazo switches in brush strokes to recreate the image according to a desired artistic style. Pikazo users can choose from hundreds of readymade styles on the website. Feeling creative and want to experiment your own style? Not a problem as Pikazo lets users upload any image so they can experiment with any creative style they wish.
Rosenberg is an advocate to bring art into the lives of everyone, and further that art should be both personal and expressive. The website states, “Pikazo was developed in 2015 using neural style transfer algorithms. It is a collaboration between human, machine, and our concept of art.”
Personal art is important as it lets users create images that have meaning for them. Images of family members, selfies, pets, familiar landscapes can all be turned into personal art that can enrich people’s lives. Alternatively, content creators can use art to attract attention and generate business. The barrier of entry is very low: two clicks using the free app and a $0.99 cost when you want to print a high-resolution image.
Pikazo will be demonstrating their technology at SC ’16 in Intel Booth #1819. Attendees can have their picture made, see it transformed into a work of art, and take the result home.
Enabling new economics in the data center
“Intel has completely enabled our economics” Rosenberg flatly stated. The 14x cost reduction is the result of optimizations to the Torch middleware library that greatly reduced the time-to-solution when processing high-resolution images from more than an hour to approximately 5 minutes on an Intel CPU. Corresponding reductions in the runtime for low-resolution images has reduced the overhead of the free image processing as well. The combination of significantly faster response time and lower costs have greatly increased Pikazo’s business. For example, Pikazo processed over 200,000 images the week of August 4, 2016.
The Torch library was chosen by Pikazo due to its open source licensing and large ecosystem of community-driven packages in machine learning and parallel image processing. The packages are written in the Lua scripting language that makes calls into the C-language Torch middleware. Pikazo also found the claim of “fast and efficient GPU support” on the Torch website to be initially attractive.
Code modernization is the key to the Pikazo runtime success story. The CPU-based version of the Pikazo software now provides a 12x speedup over an NVIDIA K40 GPU when processing high-resolution images “The challenge is memory” Rosenberg noted, “as 16 GB of memory is required to process a 1600×1600 pixel image. That just won’t fit on a GPU”.
“The challenge is memory as 16 GB of memory is required to process a 1600×1600 pixel image. That just won’t fit on a GPU” – Noah Rosenberg
“The depth of the Intel technology bench is amazing!” Rosenberg noted when he mentioned that Intel gave Pikazo – a small company of artists and content creators – direct access to Intel library authors. As a result, “the Pikazo team was able to focus on what they do best – generating pictures rather than modifying software”.
Code Modernization for efficient CPU-based computing
In brief, code modernization focuses on revising existing software to: (a) increase parallelism, (b) efficiently utilize the CPU’s vector units.The speedup can vary by problem size. For example, Pikazo observed the following speedup on a 3200 sized tensor after optimization on two different Intel platforms.
Similarly,Colfax International also observed a significant speedup after modernizing the Torch middleware. In this study, Colfax achieved a 28x speedup on a NeuralTalk2 case study when running on a dual-socket Intel Xeon processor E5-2650 v4. A 55x speedup was achieved when running on an Intel Xeon Phi processor 7210.
CPU-based computing opens new technical opportunities
A CPU-based version of the Pikazo software now opens the door to a fat-client, thin-server model, which can scale the Pikazo website to effectively support unlimited numbers of free users. A fat-client is very economical model from a commercial application point of view as it utilizes local computing resources on the user’s cellphone, table, or computer. This equates to free computing resources for Pikazo as the low-resolution images can be processed responsively and for-free on the user’s hardware. Meanwhile, the thin-server computing model also means that the company can dedicate nearly all their hardware investment in servers to processing the for-profit high-resolution images. It’s a win-win for both users and the company.
“A fat client model was just not practical when using GPU computing”, Rosenberg pointed out. The challenge is that Pikazo does not have any control over the client computing environment, which means the software cannot know if the client has a GPU or what, if any, computing capabilities might be available on the GPU. Instead, the CPU-based version utilizes a consistent SMP computing environment on the user’s device, which significantly reduces the complexity, support, and testing requirements of the downloadable fat-client application. Ultimately, users will go away if the software is buggy so consistency and testable code are key.
“A fat client model was just not practical when using GPU computing” – Noah Rosenberg
The code modernization benefits observed by Pikazo are consistent with improvements observed by other groups who have modernized the CPU code efficiency of open source machine learning packages. The Colfax International Torch middleware study is one example. The Kyoto University Graduate School of Medicine research team modernization effort of the open source Theano C++ multi-core code is another. (Theano is a Python library that lets researchers transparently run deep learning models on both CPUs and GPUs. It does so by generating C++ code from the Python script for the destination CPU or GPU architecture.)
A wide variety and large number of detailed case studies – including working code examples – are provided in the High Performance Parallelism Pearls series (vol. 1 and vol. 2). Those interested in code modernization for Intel Xeon Phi processors should look to the Intel Xeon Phi Processor High Performance Programming: Knights Landing Edition 2nd Edition. Developers should also checkout the extensive technical material and training around Code Modernization at the Intel Developer Zone: https://software.intel.com/modern-code. In addition, see how to apply machine learning algorithms to achieve faster training of deep neural networks https://software.intel.com/machine-learning.
 Source: Pikazo