I’m a YouTube Creator and I Need to Try Honor’s Robot Camera Phone


Honor took the wraps off its wild-looking Robot Phone at this year’s Mobile World Congress in Barcelona. Tucked into this regular Android phone is a robotic camera module that pops out, essentially turning the phone into something more akin to a DJI Osmo Pocket 4. And with cinema icon Arri on board to help guide the colors and look of the footage, Honor’s phone is shaping up to be a powerhouse for creators like myself. 

The phone is currently set for launch in China in the Fall but Honor has already shown it off during this year’s Cannes Film Festival — as well as shooting some back-stage footage at the Shanghai International Film Festival. But I’m yet to spend any time shooting with the thing and I’m hoping that changes soon as I’m really rather excited about it.

Alongside my 15 years as a CNET tech journalist, I’ve spent many years taking photographs around the UK and Europe, and documenting much of the work behind the scenes for my photography YouTube channel. I write, record and edit everything myself. It’s great fun, but sometimes it’s extremely challenging to be out and about, not just with the camera I’m using to take my photos, but with the additional equipment to properly film that process for my videos. 

@cnetdotcom Are we best friends now? For several years, we’ve seen an influx of AI come to smartphones, but so far, that’s resulted primarily in changes to software — not to hardware. The Robot Phone flips that trend on its head by switching up the entire design of a phone in order to infuse it with physical AI capabilities. CNET Principal Writer Katie Collin’s got the chance to check out the phone with an up close and personal demo and here are her first impressions. #honor #honorrobotphone #djiosmopocket3 #robotics #robotphone ♬ original sound – CNET

I want my videos to look as cinematic as possible, so I don’t mind carrying multiple mirrorless camera bodies and a fleet of lenses and filters into the hills to film. I bought an Osmo Pocket 3 and I found it transformative for how I work. It’s about the size of my hand and means I don’t have to lug around a dedicated camera and a gimbal. The Osmo has given me a way to film high-quality, stabilized video while walking around city streets. Its recent replacement, the Osmo Pocket 4, ups that quality even more, while its new rival, the Insta360 Luna Ultra packs in a second lens for more creative shooting options.

But still, these gimbal-stabilized cameras aren’t always an ideal solution. They’re relatively chunky, requiring a large jacket pocket at the very least meaning I have to actively decide to take it out filming. The small screens can be fiddly to use, and transferring footage from them can be time-consuming in a hurry. 

Honor Robot Phone at MWC 2026

The Osmo Pocket 3 from DJI has been a seriously helpful tool for me.

Andrew Lanxon/CNET

Honor’s Robot Phone would solve many of the Osmo’s current shortcomings. Replacing my current phone, it would be in my pocket all the time, always ready to shoot whenever creativity struck. The camera module tucks seamlessly into the phone so it won’t even bulge my pockets out in an embarrassing way. Using the phone’s main screen would give me a large display to monitor my video while recording and review it afterwards. And as it’s an Android phone, I could simply share the video files to Google Drive or even directly to YouTube when I’m done. 

Man looking contemplative in nature

Sometimes filming in the mountains means carrying a massive backpack of gear.

Andrew Lanxon/CNET

Honor also says it’s been working with iconic cinema company Arri — maker of cameras like the Alexa, which has been used on countless Hollywood movies. It’s an extremely exciting prospect, especially with Arri’s CEO commenting in a press release, “Our goal is to bring a true cinematic aesthetic to smartphone imaging — natural color, gentle highlight roll-off, and a sense of depth that feels authentic to how stories are meant to be seen.”

It’s a reassuring statement, as I’ve found many of today’s Android phone-makers, Honor included, go quite heavy on the image processing with their cameras, resulting in imagery that looks over-processed and unnatural. But just as Xiaomi recently worked with Leica on the Leitzphone — which I called the best camera phone I’ve ever used — I’m hoping that Arri’s cinema heritage will help guide Honor toward a product that truly offers what creators like me are looking for. 

Image of a Leica Xiaomi phone

Xiaomi’s Leitzphone, made in partnership with Leica, is capable of taking truly stunning images. Other phone-makers can learn from this.

Andrew Lanxon/CNET

While we’ve seen the phone appear at film festivals around the world, Honor has said that it’ll be launched to the public first in China in the Fall. So I guess I’ll have to just exercise patience — my least favorite virtue — until then. 





Source link

Leave a Reply

Subscribe to Our Newsletter

Get our latest articles delivered straight to your inbox. No spam, we promise.

Recent Reviews


Python Generators – Table of Content

Generators

The main purpose of a generator is to help us in creating our own iterators. It is a special type of function that returns an iterable set.The iterators that we create with the generator are referred to as lazy iterators. The contents of lazy iterators will not be stored in memory.If you want to iterate through large files, data streams, CSV files, etc., generators will be a good choice.Generators are introduced in PEP 255 and they are available since python 2.2 version.

How to create generator functions

Let us create a sample generator. Create a new file in any text editor and copy the below code.

def sample():

a = ["Hello", "Welcome"]

yield a

for i in sample():

print("This is a sample generator")

In this code, the sample() is the generator function name. Yield is used to return items to the caller. Unlike return in normal function, you won’t exit the function here. Once a generator is defined, it is called similar to a normal function. But the execution gets paused when it encounters a yield keyword.

Save the file with script.py as the name. Open command prompt, navigate to the script file location path, and execute the below command.

python script.py

You should be able to see an output that says ‘This is a sample generator’ on the command prompt. Let us look at one more example that returns squared root numbers to the range of numbers defined.

def Squared_numbers(num):

for num in range(num):

yield num**2

for i in Squared_numbers(5):

print(i)

This program calls Squared_numbers generator with 5 as a range. The generator will iterate from 0 and yields the square root of 5 numbers. The output for this program will be as follows.

0

1

4

9

16

Importance of yield statements in generators

Yield controls the flow of a generator function. When we call a generator expression or a generator function, we will get an iterator in return. This is nothing but a generator. 

We have to assign the generator to a variable and then use it. When we call a generator function, it only gets executed until it encounters a yield statement. The yielded value is sent back to the caller. 

  Become a python Certified professional  by learning this HKR Python Training !

Python Training Certification

  • Master Your Craft
  • Lifetime LMS & Faculty Access
  • 24/7 online expert support
  • Real-world & Project Based Learning

Creating a generator object with generator expressions

Generator expressions are similar to list comprehensions. They help us to create a generator object with minimal code. We can create generator objects that do not hold the entire object in memory before iteration. Let us create a list and a generator object and look at the difference between the two.

#Creating a list

numbers_list = [num for num in range(5)]

#Creating a generator object

numbers_generatorObject = (num for num in range(5))

#output

numbers_list

numbers_generatorObject

In the above code, we have created a list and a generator object for numbers. The syntax will be very much similar, but the difference will be the type of parentheses that we use. When you execute the above code, this will be the output.

[0, 1, 2, 3, 4]

at 0x7f776b77dd58>

You can observe here that the numbers_list is a list, so the numbers were printed on the command line. Whereas the numbers_generatorObject has got created as a generator object. You can also see the location at which the generator object is created.

Evaluating generator performance

As I mentioned before, generators optimize memory. Let’s consider the same example that we have taken above and increase numbers up to 150. Let us see how much size the list and generator objects take to hold the same numbers. Here is a small program that we can use to get the size.

import sys

#Creating a list

numbers_list = [num for num in range(150)]

print("The size of the list is", sys.getsizeof(numbers_list))

#Creating a generator object

numbers_generatorObject = (num for num in range(150))

print("The size of the generator is", sys.getsizeof(numbers_generatorObject))

The output for the above program will be as follows.

The size of the list is 1448

The size of the generator is 88

You can see that the list took 1448 bytes, whereas the generator object is only 88 bytes. You can observe a huge difference when you work with a larger dataset.

Acquire NLP certification by enrolling in the HKR NLP Training program in Hyderabad!

HKR Trainings Logo

Subscribe to our YouTube channel to get new updates..!

Advanced generator methods

Generators provide three special methods which were introduced in PEP 342 and is available since the python 2.5 version.

send() – It is a method used to send values to the generator iterators. The value specified in the send() method is used to continue with the next yield. If we do not pass any value to the send() method, it will be equivalent to the next() call. 

throw() – It is a method used to throw exceptions from the generator. We can add a throw() method when we might need to catch an exception. The value or exception specified in the throw() method will be sent to the caller.

close() – It is a method used to stop a generator. This will be really helpful when we want to stop a program when it goes into an infinity loop. 

Realted Article, List to String in Python !

Creating data pipelines with generators

When you have a huge dataset that needs processing, we can’t really do all the processing at a single place. To avoid this, we can create a pipeline. Each method in a pipeline receives an item, applies transformations on it, and returns the transformed item. This way, we can even change the order of transformations.

For example, if we want to process data in a CSV file, we have to read all the lines of data in the file. Identify the column names,split each row into a list of values,and filter out any unwanted data.Create dictionaries for the column names and lists.Apply the transformations that you want on the rows. All the created generators will function as a pipeline.

  Top 50 frequently asked Python interview Question and answers !

Python Training Certification

Weekday / Weekend Batches

Conclusion

As you have learned, generators simplify code. Generator expressions simplify code much further. They might be a little confusing at first. But when you put enough effort and practice them, you will get to understand them completely. Then you will know how easy it is to code in python with the help of generators.

Generators are especially useful when dealing with huge datasets.We can create pipelines and make the developer’s job easier.The calculations on data will be performed on-demand. We can use generators to simulate concurrency.Enjoy coding with python!

Related Articles:

1. Python Partial Functions

2. Python Split Method

3. Running Scripts in Python

4. Python List Length



Source link